您在这里:首页 > 深入 Python > 对象和面向对象 > 介绍类属性 | << >> | ||||
深入 Python从 Python 新手到专家 |
您已经了解了数据属性,它是属于某个类的特定实例的变量。 Python 还支持类属性,它是属于类本身的变量。
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)}
>>> import fileinfo >>> fileinfo.MP3FileInfo<class fileinfo.MP3FileInfo at 01257FDC> >>> fileinfo.MP3FileInfo.tagDataMap
{'title': (3, 33, <function stripnulls at 0260C8D4>), 'genre': (127, 128, <built-in function ord>), 'artist': (33, 63, <function stripnulls at 0260C8D4>), 'year': (93, 97, <function stripnulls at 0260C8D4>), 'comment': (97, 126, <function stripnulls at 0260C8D4>), 'album': (63, 93, <function stripnulls at 0260C8D4>)} >>> m = fileinfo.MP3FileInfo()
>>> m.tagDataMap {'title': (3, 33, <function stripnulls at 0260C8D4>), 'genre': (127, 128, <built-in function ord>), 'artist': (33, 63, <function stripnulls at 0260C8D4>), 'year': (93, 97, <function stripnulls at 0260C8D4>), 'comment': (97, 126, <function stripnulls at 0260C8D4>), 'album': (63, 93, <function stripnulls at 0260C8D4>)}
![]() |
|
在 Java 中,静态变量(在 Python 中称为类属性)和实例变量(在 Python 中称为数据属性)都在类定义之后立即定义(一个使用 static 关键字,一个不使用)。在 Python 中,只有类属性可以在这里定义;数据属性在 __init__ 方法中定义。 |
类属性可以用作类级别的常量(这就是您在 MP3FileInfo 中使用它们的方式),但它们并不是真正的常量。您也可以更改它们。
![]() |
|
在 Python 中没有常量。如果您足够努力,一切都可以改变。这符合 Python 的一个核心原则:应该阻止不良行为,但不应该禁止。如果您真的想更改 None 的值,您可以这样做,但是当您的代码无法调试时,不要来找我。 |
<< 高级特殊类方法 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
私有函数 >> |