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. 定义一个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)