一、对象的初始化
1、前提:
- 目前来说,对于Person类来说name是必须的,并且每一个对象中的name属性基本上都是不同,而现在是将name属性在定义为对象以后,手动添加到对象中,这种方式很容易出现错误
- 因此希望,在创建对象时,必须设置name属性,如果不设置对象将无法创建,并且属性的创建应该是自动完成的,而不是在创建对象以后手动完成
- 如下:手动向对象添加name属性的方法
class Person :
def say_hello(self)
print ('大家好,我是%s'%self.name)
p1 = Person()
# 手动向对象添加name属性
p1.name = '肖战'
2、创建对象的流程
- p1 = Person()的运行流程
① 创建一个变量
② 在内存中创建一个新队形
③ init(self)方法执行
④ 将对象的id赋值给变量
3、魔术方法
- 为解决以上的问题,在类中可以定义一些特殊的方法(魔术方法)
(1)语法: 特殊方法都是以__(双下划线)开头,__(双下划线)结尾的方法
(2)特殊方法不需要自己调用,特殊方法将会在特殊的时刻自动调用
class Person :
def __init__(self):
print ('余生请多指教~~')
p1 = Person()
(3)学习特殊方法
① 特殊方法什么时候调用
- init 会在对象创建以后立刻执行
② 特殊方法有什么作用
- init 可以用来向新创建的对象中初始化属性