相关疑难解决方法(0)

在Python中,如何在类方法中访问"静态"类变量

如果我有以下python代码:

class Foo(object):
    bar = 1

    def bah(self):
        print(bar)

f = Foo()
f.bah()
Run Code Online (Sandbox Code Playgroud)

它抱怨

NameError: global name 'bar' is not defined
Run Code Online (Sandbox Code Playgroud)

如何bar在方法中访问类/静态变量bah

python

146
推荐指数
4
解决办法
14万
查看次数

类变量和类属性之间的区别

你能解释一下类变量和类属性之间的区别吗?

根据这个网页,类属性是类本身拥有的变量。

例如:

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)}
Run Code Online (Sandbox Code Playgroud)

该网页说 tagDataMap 是一个类属性。但是根据Tutorialspoint.com 的说法,“类变量是一个类的所有实例共享的变量。类变量定义在一个类内,但在该类的任何方法之外。”

那么Tutorialspoint.com 所说的class 变量和diveintopython.net 所说的class 属性是一回事吗?我相信这两个术语之间存在差异,我想学习。

谢谢!

python class python-3.x

5
推荐指数
1
解决办法
2249
查看次数

标签 统计

python ×2

class ×1

python-3.x ×1