Python:self、__init__、实例属性方法及类属性方法的互相调用

本文详细介绍了Python中类的初始化(实例化)、实例方法的__init__和类方法的使用,以及如何定义和访问实例属性。重点讲解了self和cls的区别,以及如何动态添加实例属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"""
程序运行的机制,会先运行顶格写的代码

初始化:也叫实例化,即通过定义的类得到一个具体的对象

__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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Semih93

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值