本博问源于python面向对象,在获取类属性时,一般我们会直接用类.类属性去打印,但是python中对象.类属性也可以.
如果不熟悉类属性可以查看这个:
python面向对象什么时候使用类属性

第一种情形:类.类属性

class Tool(object):
    count = 0 # count就是一个类属性

    def __init__(self,name):
        self.name = name
        Tool.count += 1

tool1 = Tool('斧头1')
tool2 = Tool('斧头1')
tool3 = Tool('斧头1')
tool4 = Tool('斧头1')
print(Tool.count)

本段代码浅显易懂的表明类.类属性的调用过程,count就是一个类属性.

python 获取类的属性 python获取一个类的所有属性_python

第二种情形:对象.类属性

改动上面一行代码,就成了下面的代码。把Tool改为实例化,比如tool1

class Tool(object):
    count = 0 # count就是一个类属性

    def __init__(self,name):
        self.name = name
        Tool.count += 1

tool1 = Tool('斧头1')
tool2 = Tool('斧头1')
tool3 = Tool('斧头1')
tool4 = Tool('斧头1')
print(tool1.count)

python 获取类的属性 python获取一个类的所有属性_python_02

总结

在我们使用过程中,我们要避免使用第二种,因为这种代码产生混淆。比如下面这段代码,超短精简介绍

class Tool(object):
    count = 0 # count就是一个类属性

    def __init__(self,name):
        self.name = name
        Tool.count += 1

tool1 = Tool('斧头1')
tool2 = Tool('斧头1')
tool3 = Tool('斧头1')
tool4 = Tool('斧头1')
tool1.count = 99
print(tool1.count)
print(Tool.count)

代码中输出,两者print结果不一样,产生混淆,所以还是用类.类属性较好

python 获取类的属性 python获取一个类的所有属性_python 获取类的属性_03