赞
踩
目录
8.3.1 什么是__init__()方法
8.3.2 init()方法的语法
8.3.3 init()方法的作用
8.3.4 init()方法与自定义方法的区别
8.3.5 类的方法和函数的区别
8.3.6 类与对象知识框架图
init()方法是类里面的一个特殊的固有方法。
类似内置函数一样,但不能完成等同。
init是initialization 的缩写。
initialization[ɪˌnɪʃəlaɪ’zeɪʃn]:初始化。
init()方法通常称为初始化方法。
类在实例化时,init()方法会自动执行类内部的代码,通常用于初始化对象的属性。
init()方法的作用:初始化创建好的对象,初始化指的是给属性赋值。
利用 init() 法来设置类的属性相对更为灵活。
体验代码:自动执行类内部的代码
# 定义一个类
# 类名Cars的C要大写
# 注意有英文冒号,有缩进
class Cars:
# 初始化方法
# 第一参数为self
def __init__(self):
# 如果实例化成功,下面这句将会被打印出来。
print('若实例化以后,输出该行代码!')
# 实例化类
# 语法为:对象 = 类()
# 根据车类制作一辆车
new_car = Cars()
【终端输出】
若实例化以后,输出该行代码!
观察上述代码,当实例化了类Cars时,init()方法内的print语句被自动执行。
这是因为初始化方法会自动运行内部的代码,所以一旦实例化,print() 语句被执行,print() 语句的内容也就会被打印出来。
定义__init__()方法的语法也是用关键字def, 语法如下:
但要注意的是:init前后需要加上两条下划线。
下划线的输入方法为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KhqujtCq-1647670281870)
init()方法的作用是可以利用__init__()方法来定义类的属性。
也就是利用__init__()方法往类内部传入参数,来为类灵活地设置属性。
【语法提示】在类的方法内调用类的属性时,要采用self.属性名
的格式。
# 定义一个类 # 类名Cars的C要大写 # 注意有英文冒号,有缩进 class Cars: # 初始化方法 # 第一参数为self def __init__(self,color,shape): # 汽车的属性=外形结构 self.color = color self.shape = shape print('您定制的{}{}已经生产好了!'.format(self.color,self.shape)) # 实例化类 # 语法为:对象 = 类() # 根据车类制作一辆车 new_car = Cars('红色','小汽车') # 查看类的属性 print(new_car.color) print(new_car.shape)
【终端输出】
您定制的红色小汽车已经生产好了!
红色
小汽车
代码分析
def __init__(self, color, shape):
# 汽车的属性=外形结构
self.color = color
self.shape = shape
1.init 是一个方法。
2.这里的方法有3个形参:self color shape。
3.self 表示的是对象本身,这里表示的new_car本身。
4.self 算是一种约定,它不是像关键字的一样的只有唯一的写法,你也可以另起一个参数名。
例如:
def __init__(me ,color,shape):
def __init__(target ,color,shape):
target[ˈtɑːɡɪt]目标。
大家把代码中的self
替换成me
或者target
,或者其它的参数名都是可以的。
只是程序员们通常都用self 表示。
上述代码中我们在def __init__(self,color,shape)
初始化方法中设置了2个形参,color、shape
。
因此实例化时我们就需要传入两个实参new_car = Cars('红色','小汽车')
,即'红色','小汽车'
。
上述两个参数是位置参数,他们会像函数一样按顺序传递参数值,语法格式如下:
# 汽车的属性=外形结构
self.color = color
self.shape = shape
# 汽车的属性=外形结构
color = '红'
shape = '小汽车'
# 实例化类即可直接是传入实参:
new_car = Cars('红色','小汽车')
# 先实例化类
new_car = Cars()
#然后调用类的方法是传入实参:
new_car.drive('黑', '跑车','飞速地')
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1fbtvRbO-1647670281872)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。