主要内容 #
1. 类的构造方法 #
在用类创建一个实例对象时,我们希望可以在创建的同时给对象的某些属性赋一个初值。
这就需要在类中添加一个__init__()方法。
该方法是一个特殊的类实例方法,称为构造方法(或构造函数)。
构造方法用于创建对象时被自动调用。
即每当创建一个类的实例对象时,Python解释器都会自动调用它。
构造方法的语法格式如下:
# 注意,此方法的方法名中,开头和结尾各有 2 个下划线, # 且中间不能有空格代码块 # 第一个参数必须为一个名为 self 的参数 # self后面的...表示多个参数或者没有参数 def __init__(self, ...):
构造方法的示例如下:
class Person: #定义一个Person类 ''' 这是一个Person类的定义 ''' def __init__(self): # __init__函数 print("自动调用了构造方法") age = 0 name = '某某某' weight = 18 Someone_1 = Person() # 构建对象的同时直接调用了__init__函数
注意:
1,即便不添加__init__函数,Python 也会自动为类添加一个仅包含 self 参数的构造方法。
2,仅包含 self 参数的 __init__() 构造方法,又称为类的默认构造方法。
2. 多参数构造方法构建 #
在 __init__() 构造方法中,除了 self 参数外,还可以自定义其它参数。
参数之间使用逗号“,”进行分割。
例如,下面的代码在创建 __init__() 方法时,额外指定了 1 个参数
class Person: #定义一个Person类 ''' 这是一个Person类的定义 ''' def __init__(self, name): # __init__函数 self.name = name age = 0 weight = 18 Someone_1 = Person(name='小强') # 构建对象的同时,给对象的属性name赋值 print(Someone_1.name) #Someone_2 = Person() # 程序报错,因为定义的构造函数需要传入一个参数name
注意:
虽然构造方法中有 self、name这2个参数,但实际需要传参的仅有 name。
也就是说,self 不需要手动传递参数。
下面的代码在创建 __init__() 方法时,额外指定了 3 个参数
class Person: #定义一个Person类 ''' 这是一个Person类的定义 ''' def __init__(self, name, age, weight): # __init__函数 self.name = name self.age = age self.weight = weight Someone_1 = Person(name='小强', age=1, weight=18) # 构建对象的同时,给对象的属性name赋值 print(Someone_1.name, Someone_1.age, Someone_1.weight)
4. 小结 #
- 构造方法是类的一个特殊方法,在实例化时自动调用
- 构造方法名称是__init__,参数至少有一个self
习题 #
- 实现Person这个类,包含属性:name,height,age,sex,location,使用__init__构造