构造函数
1 ''' 2 构造函数:__init__(self, 参数): 实例化对象时自动调用。 3 python中没有函数重载,init函数在一个类中写多个不会报错,但 4 只有最后一个构造函数有效。 5 建议:以后类的构造函数只写一个即可。 6 ''' 7 class Person(): 8 ''' 9 # 类属性 10 name = "lily" 11 age = 0 12 sex = "F" 13 ''' 14 # 普通方法 15 def eat(self): 16 print("eat---1") 17 # 系统默认自带的构造方法:无参数,函数体中无内容 18 ''' 19 def __init__(self): 20 pass 21 ''' 22 # 我们重写构造函数时,可以更改形参数量,可以重新设置函数体中的内容 23 # 构造函数没有return语句 24 ''' 25 def __init__(self): 26 print("init函数") 27 ''' 28 # 更改参数个数 29 ''' 30 def __init__(self, name, age): 31 # name == 形参 32 # self.name == 对象属性 33 # print(name, age) 34 # 对象属性:(在init方法中使用self.的方式创建的属性) 35 self.name = name 36 self.age = age 37 self.sex = 0 38 ''' 39 # 三个属性name,age,sex,实例化对象时,必传参数有name 其他两个可选 40 def __init__(self, name, age=0, sex=0): 41 self.name = name 42 self.age = age 43 self.sex = sex 44 # print(12345678) 45 46 47 # def __init__(self, name, **kwargs): 48 # self.name = name 49 # self.age = kwargs.get("age") 50 # self.sex = kwargs.get("sex") 51 # self.age = kwargs["age"] 52 53 54 55 per1 = Person(name="lucy") 56 print(per1.name, per1.age, per1.sex) 57 per2 = Person(name="lili", age=30) 58 print(per2.name, per2.age, per2.sex) 59 per3 = Person(name="aaa", sex=1) 60 print(per3.name, per3.age, per3.sex) 61 per4 = Person(name="b", age=40, sex=1) 62 print(per4.name, per4.age, per4.sex) 63 64 per5 = Person(name="123", age=12, sex=89) 65 print(per5.name) 66 67 # per5.__init__(name=123, age=456, sex=789) 68 69 70 71 # Person() 执行的是:Person类中的init方法 72 # per1 = Person("lucy", 12) 73 # print(per1.name) # lucy 74 # print(per1.age) 75 # per2 = Person("lilei", 30) 76 # print(per2.name) # lilei 77 # 78 # print(per1.sex) # 0 79 # print(per2.sex) # 0 80 81 82 83 84 85 86 87 88 ''' 89 class Student: 90 name = "lily" 91 92 stu = Student() 93 print(stu.name) 94 '''