类就相当于一张图纸 然后我们通过这张图纸来产生对象
我们可以通过同一张图纸产生无数个对象.比如说;我们可以通过一张汽车设计图生产几万辆一样的汽车.
但问题是;我们在日常使用中还是需要区分这样一摸一样的汽车的.所以我们会给汽车编号或者取一个名字.这样可以区分它们 比如; 汽车A 汽车B 等等
self参数就是用来区分不同对象的. 一个类可以创建无数个对象 每一个对象都会有一个属于自己的self参数 这样我们就不会把对象弄混了.
我们在定义一个类中的方法时,通常会写上self参数,这样做不同的对象调用的都是属于自身这个对象的方法,而不是其他对象的方法.
class Ren():
# 定义一个人的类
# 人应该具备的基本属性
def __init__(self,xingming,nianling,xingbie) -> None:
self.xingming = xingming
self.nianling = nianling
self.xingbie = xingbie
# 定义人的基本功能
def huoqu_nianling(self) -> int:
return self.nianling
def huoqu_xingming(self) -> str:
return self.xingming
# 基于Ren这张图纸创建对象,同时思考一个问题;如果保证每一个对象调用的方法不会混淆?
xiaoming = Ren(xingming='小明',nianling=28,xingbie='男')
xiaozhang = Ren(xingming='小张',nianling=25,xingbie='男')
print(xiaoming.huoqu_xingming()) # 打印结果是小明
print(xiaozhang.huoqu_xingming()) # 打印结果是小张
# 也就是说;我们用xiaozhang这个对象调用类Ren中的方法得到的是只属于xiaozhang这个对象的数据而不是其他对象的.
# 能做到这一点都是self参数的功劳.你可以简单的理解为;当对象被创建时,对象名会自动传给__init__函数的中seif参数
# 从而实现了对象和方法以及属性之间的绑定
|