请您解释一下类变量和类属性之间的区别吗?
根据this网页,类属性是类本身拥有的变量。
例如:
class MP3FileInfo(FileInfo):
"store ID3v1.0 MP3 tags"
tagDataMap = {"title" : ( 3, 33, stripnulls),
"artist" : ( 33, 63, stripnulls),
"album" : ( 63, 93, stripnulls),
"year" : ( 93, 97, stripnulls),
"comment" : ( 97, 126, stripnulls),
"genre" : (127, 128, ord)}
网页上说tagDataMap是一个类属性。 但是根据Tutorialspoint.com,"类变量是一个由类的所有实例共享的变量。类变量在类中定义,但在任何类的方法之外。"
那么Tutorialspoint.com调用类变量以及diveintopython.net调用类属性的内容是一回事吗?我相信这两个术语之间存在差异,我想学习。
谢谢!
答案 0 :(得分:2)
我对这个问题感到有些困惑。因此,我认为回到有关面向对象原则的更一般性讨论以帮助澄清(参考我的一些旧的教学笔记)是有意义的。
要创建类,请编写类定义。类定义是一组定义类的方法和数据属性的语句。
扩展这一点,在面向对象编程的上下文中,从类(蓝图)创建的对象具有数据和过程。从该类创建的该对象中的数据称为对象数据属性。通常,对象的数据属性只是引用数据的变量。对象执行的过程是方法。因此,从类创建的对象在概念上是一个独立的单元,由数据属性和对数据属性进行操作的方法组成。
一个例子(希望能让事情变得清晰。让我们说我们有一个昆虫类。昆虫类描述了特定类型的对象可能具有的数据属性和方法。从这个类中,我们可以创建2个对象:大黄蜂对象和蚊子对象。大黄蜂对象是昆虫类的一个实例。它具有昆虫类所描述的数据属性和方法。此外,蚊子对象是昆虫类的一个实例。它还有数据昆虫类描述的属性和方法。