构造函数

 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 '''
原文地址:https://www.cnblogs.com/BKY88888888/p/11272396.html