""" 程序运行的机制,会先运行顶格写的代码 初始化:也叫实例化,即通过定义的类得到一个具体的对象 __init__(是个实例方法)的作用:用来定义实例属性(不是类属性)。 定义实例属性的方式有两种 在类里面定义实例属性时:需要加上self,即self.实例属性=形式参数 在类外面定义实例属性时:对象名.属性 self : 表示在类里面,对象本身,是个占坑的符号,代表对象自己本身。 cls:表示类本身 """ class Animal: height='1.5' #类属性 def __init__(self,name): #对象的初始化过程,也叫实例化过程,定义实例属性 #self.属性:定义的是实例属性 #self.属性=形式参数,形式参数和对象的实际参数是一一对应的 self.name=name #传入的属性必须设置成实例属性才能被对象访问到,即self.实例属性=形式参数 @classmethod def animal_color(cls): #类方法可以调用类属性,不能调用实例属性和实例方法 print('狗狗的身高%s' % cls.height) #类方法中可以调用类属性 # print(cls.dog_feature()) #报错,类方法中不可以调用实例方法和属性 def dog_feature(self): #实例属性中的self的作用:可以通过self调用类的属性 #实例方法中可以调用其他实例方法、实例属性,类方法 print('%s 的身高为 %s' % (self.name,self.height)) #调用类属性 self.food() #调用实例方法 self.animal_color() #调用类方法 def food(self): print('吃骨头') self.toy='球球' #新增一个实例属性 #实例方法的调用 dog=Animal('柯基') #实例化时会首先调到 __init__ 方法 # print(dog.name) dog.dog_feature() # 类方法的调用 Animal.animal_color() # 后天定义的实例属性 # 方法一: dog=Animal('斗牛') dog.tail='没有尾巴' #实例化对象后添加属性 print(dog.tail) # 方法二: dog=Animal('哈士奇') # print(dog.toy) #报错, # 没法直接访问后天定义的属性,需要在访问完实例方法后,才能访问该实例方法中定义的属性, # 因为程序会先运行顶格写的代码,里面的代码不会被执行 dog.food() print(dog.toy)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)