python静态方法怎么调用类属性_python类属性、类方法、静态方法

一. 类属性

1. 类属性

类属性就是 类 所拥有的属性,它被 该类的所有实例对象 所共有。

类属性可以使用 类或 实例对象访问。

说明:

1. 记录的某项数据 始终保持一致时,则定义类属性。

2. 实例属性要求 每个对象为其 单独开辟一份内存空间 来记录数据,而 类属性 为全类所共有 ,仅占用一份内存,更加节省内存空间。

2. 类属性的设置

classDog(object):

tooth= 10dog=Dog()print(Dog.tooth) #类直接调用

print(dog.tooth) #实例调用

说明:

类属性类似于java的静态变量

3. 类属性的修改

类属性的修改只能通过类修改,不能通过类的实例对象修改

classDog(object):

tooth= 10dog=Dog()

Dog.tooth= 20

print(Dog.tooth) #20

print(dog.tooth) #20

dog.tooth= 30

print(Dog.tooth) #20

print(dog.tooth) #30

说明:

上面 dog.tooth = 30 并没有修改类属性tooth,而是创建了一个与类属性tooth同名的实例属性

二. 类方法

用装饰器`@classmethod`来标识的方法为类方法,对于类方法,第一个参数必须是类,一般以`cls`作为第一个参数。

classDog(object):

tooth= 10@classmethoddefclass_fn(cls):returncls.tooth

dog=Dog()print(Dog.class_fn()) #10 # 类直接调用类方法

print(dog.class_fn()) #10 # 类的对象调用类方法

说明:参数cls代表当前类,调用方法时自动传入

三. 静态方法

通过装饰器`@staticmethod`来进行修饰,静态方法既不需要传递类也不需要传递实例对象作为参数(形参没有self/cls)**。

静态方法 也能够通过 实例对象 和 类去访问。

classDog(object):

tooth= 10@staticmethoddefstatic_fn():return "静态方法"dog=Dog()print(Dog.static_fn()) #静态方法 # 类直接调用静态方法

print(dog.static_fn()) #静态方法 # 类的对象调用静态方法

说明:

静态对象中无法访问类属性

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值