# __init__,python自带初始化方法
今天学到类函数中__init__(self)是初始化方法,实例化对象时自动调用,完成一些初始化设置。例如:
class People: def __init__(self): """ 实例属性的声明 :return: """ self.xm = "小明" pass def eat(self): self.name = "小钱" print("吃榴莲") pass pass
xl=People()
print(xl.xm)可以输出"小明"
而print(xl.name)就会报错,必须先利用xl.eat()调用函数后才可以调用函数内的self.name,过程如下:
xl.eat() print(xl.name)
且创建的实例属性可以通过”实例名.实例属性=新值“的方式修改该实例内的属性,不影响之前且不改变类内声明的实例属性
创建的类属性可以通过“类名.类属性=新值”的方式修改类内的类属性,所有实例的该属性都会改变,不会影响之前的
xl = People() xl.eat() print(xl.xm) print(xl.name) xl.xm = "xiaoming" print(xl.xm) xw = People() print(xw.xm)
# self代表实例本身,具体说是该实例的内存地址
上述示例中self.xm="小明"实例化成xl后(即xl=People()后)其实就是xl.xm="小明"
例如:
class Animal(object): # 创建一个初始化方法 def __init__(self, name, colour): self.name = name self.colour = colour pass pass xl = Animal("小白", "white") print(xl.name)
输出结果为小白
class Animal(object): # 创建一个初始化方法 def __init__(self, name, colour): self.name = name self.colour = colour pass def eat(self, food): print(self.name+"喜欢吃"+food) pass xl = Animal("小白", "white") print(xl.name) xl.eat("草莓")
输出结果小白喜欢吃草莓
实例属性中的self的作用:可以通过self调用类的属性 实例方法中可以调用其他实例方法、实例属性,类方法
self、__init__、实例属性方法及类属性方法的互相调用详见:https://blog.youkuaiyun.com/weixin_45548112/article/details/121891904