类属性和实例属性的区别

实例属性是指需要实例化一个类之后,实例所使用的变量。实例的些属性是动态的, 不需要在构造函数中,或其它任何地方为它们预先声明或者赋值。

类属性是指类的静态成员变量,在不定义类的实例时,即可以使用,他与类的实例无关。 和c++语言中的static声明的成员变量类似。 例如:

class Book:
    index = 10   #类属性

print(Book.index)
Book.index += 1
print(Book.index)

b = Book()
b.name = "Openwrt" #实例属性

类属性可以通过类名来访问,实例属性通过实例来访问。如果实例中没有同名的实例属性, 也可以通过实例来读取类属性。 如果类属性需要修改的话,只能通过类名来访问。