python:类属性与方法

 1.类的属性

'''类属性:
不能用实例化对象对类属性进行修改
只类用类对象对其属性进行修改
'''
class Police(object):
    name='警察'
Police.name='交通警察'
print(Police.name)
police=Police()
police.name='民警'
print(police.name)
print(Police.name)

运行结果:

交通警察
民警
交通警察

即原理是在对类进行实例化时会在内存当中开辟一个新的内存存放类当中的属性,所以用实例化后的对象修改的其实是新内存对象当中的属性而不会修改类的属性,因为两者的内存地址不同。

2.类方法

'''
类方法:
需要用装饰器@classmethod 标识其为类方法
第一个参数必须是对象,一般用cls作为参数名
使用场景:
当类方法中需要适用对象(比如访问私有类属性)时
定义类方法
类方法一般和类属性配合使用
'''
class Police(object):
    __name='交通警察'

    @classmethod
    def print_info(cls):
        print(cls.__name)
police=Police()
police.print_info()

运行结果

交通警察

即类方法使用的场景就是对类属性进行操作,类属性又分为一般的类属性和私有类属性两种形式。

3.静态方法

'''
通过装饰器@staticmethod 进行修饰
不需要传入类对象和实例化对象(cls和self)
实例化对象和类对象可以访问静态方法
即不需要使用实例化对象也不需要使用类对象时定义
静态方法
取消不需要的参数传递,有利于减少不必要的内存使用和性能消耗
'''
class Police(object):
    @staticmethod
    def print_info():
        print('这是一个静态方法')
Police.print_info()
police=Police()
police.print_info()

运行结果

这是一个静态方法
这是一个静态方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值