Leaven113 2022-01-01 10:48 采纳率: 50%
浏览 41
已结题

python有关类的问题,需要init吗,具体怎么操作

  1. 首先定义一个Person类,并定义一个Person类的私有属性年龄(age)默认值为0,再定义两个实例属性,其中一个属性姓名(name)为公有成员,另一个属性性别(sex)为私有成员,性别默认值为“man”,再定义两个Person类的成员方法,一个是设置年龄的setAge函数,一个是输出姓名、性别和年龄的show函数;然后以Person类为基类派生Teacher类,构造函数的形参中多增加一个参数部门(department)默认值为“Math”,通过调用基类的构造函数,为Teacher类的实例对象的属性赋值,再定义三个Teacher类的成员方法,一个是设置部门的setDepartment函数,一个是设置年龄的setAge函数,该函数可以通过特殊方式访问基类的私有成员age来实现,一个是输出姓名、性别、年龄和部门的show函数;最后分别创建指定姓名和性别的Person类和Teacher类的对象,并对Person类对象设置年龄28,对Teacher类对象设置年龄35和部门“Chinese”,最后分别调用这两个新建的实例对象的show函数,输出结果如下所示。
    Name: Wang Hong
    Sex: woman
    Age: 28
    Name: Han Mei
    Sex: woman
    Age: 35
    Department: Chinese
  • 写回答

1条回答 默认 最新

  • CSDN专家-Time 2022-01-01 11:09
    关注

    其他的属性照着写就可以

    # 1. 定义一个Person类,类中要有初始化方法,方法中要有人的姓名和年龄属性
    #
    # 2. 将类中的姓名是公有属性,年龄是私有属性.
    #
    # 3. 提供获取私有属性的公有方法 get_age方法.
    #
    # 4. 提供可以设置私有属性的方法 set_age方法,要求如果输入的年龄在 0 -- 100 之间,设置年龄,否则,提示输入不正确,.
    #
    # 5. 重写 __str__ 要求打印对象时,把 姓名和年龄都打印出来。
    
    
    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.__age = age
    
        def get_age(self):
            return self.__age
    
        def set_age(self):
            age_num = int(input("请输入的年龄在 0 -- 100 之间:"))
            if 0 < age_num < 100:
                self.__age = age_num
                print("{}年龄设置成功:{}".format(self.name, self.__age))
            else:
                print("提示输入不正确")
    
        def __str__(self):
            return "姓名:{}, 年龄:{}".format(self.name, self.__age)
    
    
    if __name__ == '__main__':
        p1 = Person("小米", 30)
        p1.set_age()
        print(p1)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月10日
  • 已采纳回答 1月2日
  • 创建了问题 1月1日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度