构造方法
属性(成员变量)的赋值
class Student:
name = None # 姓名
age = None # 年龄
tel = None # 手机号
stu1 = Student()
stu1.name = "张三"
stu1.age = 20
stu1.tel = "1212121211"
stu2 = Student()
stu2.name = "张四"
stu2.age = 20
stu2.tel = "1212121211"
上面代码中,为对象的属性赋值需要依次进行,略显繁琐。
有没有更加高效的方式,能够一行代码就完成呢?
思考:Student()
这个括号,能否像函数(方法)那样,通过传参的形式对属性赋值呢?
可以,需要使用构造方法:__init__()
构造方法
Python类可以使用:__init__()方法,称之为构造方法。
- 可以实现: 在创建类对象(构造类)的时候,会自动执行。
- 在创建类对象(构造类)的时候,将传入参数自动传递给__init__方法使用。
class Student:
# 可以省略
name = None # 姓名
age = None # 年龄
tel = None # 手机号
def __init__(self, name, age, tel): # 构建类时传入的参数会自动提供给__init__方法
self.name = name # 构建类的时侯__init__方法会自动执行
self.age = age
self.tel = tel
print("Student类创建了一个对象")
stu3 = Student("李四", 30, "1212563")
print(stu3.name, stu3.age, stu3.tel)
结果:
Student类创建了一个对象
李四 30 1212563
构造方法注意事项
- 重要的事情说三遍,构造方法名称:__init__ __init__ __init__ , 千万不要忘记init前后都有2个下划线
- 构造方法也是成员方法,不要忘记在参数列表中提供:self
- 在构造方法内定义成员变量,需要使用self关键字
def __init__(self, name, age, tel): # 构建类时传入的参数会自动提供给__init__方法
self.name = name # 构建类的时侯__init__方法会自动执行
self.age = age
self.tel = tel
print("Student类创建了一个对象")
这是因为:变量是定义在构造方法内部,如果要成为成员变量,需要用self来表示
总结:
1. 构造方法的名称是:
__init__,注意init前后的2个下划线符号
2. 构造方法的作用:
构建类对象的时候会自动运行
构建类对象的传参会传递给构造方法,借此特性可以给成员变量赋值
3. 注意事项:
构造方法不要忘记s