Python中的类属性和对象属性的区别详解

Python中的类属性和对象属性的区别详解,第1张

属性

class Employee(object):

emCount=0

def __init__(self,name,salary):

selfnane=name

selfsalary=salary

类属性就是定义类的时候直接定义的属性 emCount,类似于java里面的static修饰的属性,可以直接通过 类名属性名访问:EmployeeemCount

实例属性是在__init()方法中定义的属性,例如name,和salary,self是指向自己的,类似java的this关键字,实际是通过内置的方法setattr()完成的

可以通过重写setatttr()进行类属性的增加和获取

顶级函数hasattr可以查看对象是否包含某某属性,这里的属性包括数据属性和方法。getattr可以获取属性。

如下举例说明。

a=[1,2,3]

print('列表有count属性:%s'%hasattr(a,'count'))

print('列表有append属性:%s'%hasattr(a,'append'))

print('列表有shift属性:%s'%hasattr(a,'shift'))

print('列表的count属性是方法:%s'%hasattr(getattr(a,'count'),'__call__'))

print('列表的append属性是方法:%s'%hasattr(getattr(a,'append'),'__call__'))

class myclass():

    def __init__(self):

        selfvalattr=3

    def method(self):

        pass

mc=myclass()

print('myclass有valattr属性:%s'%hasattr(mc,'valattr'))

print('myclass有method属性:%s'%hasattr(mc,'method'))

print('myclass的valattr属性是方法:%s'%hasattr(getattr(mc,'valattr'),'__call__'))

print('myclass的method属性是方法:%s'%hasattr(getattr(mc,'method'),'__call__'))

以上就是关于Python中的类属性和对象属性的区别详解全部的内容,包括:Python中的类属性和对象属性的区别详解、怎么判断 Python 对象是否包含某个属性、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9547653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存