Python 静态变量:未在其他构造函数中定义

Python 静态变量:未在其他构造函数中定义,python,python-3.x,python-3.5,python-internals,Python,Python 3.x,Python 3.5,Python Internals,访问类的静态成员时遇到问题。我的用例最简单的例子是: class A: _tmpl = '<{}>' print(_tmpl) VAR = tuple(_tmpl.format(var) for var in ('a', 'b')) 这里发生了什么?我如何修复它(A._tmpl也不起作用…。不A尚未(完全)定义。这不起作用:AttributeError:type对象“A”没有属性“\u tmpl”(应该在问题中添加该属性…)解决方法是在类声明之后执行:A.V

访问类的静态成员时遇到问题。我的用例最简单的例子是:

class A:
    _tmpl = '<{}>'
    print(_tmpl)
    VAR = tuple(_tmpl.format(var) for var in ('a', 'b'))

这里发生了什么?我如何修复它(
A._tmpl
也不起作用…。

不<代码>A尚未(完全)定义。这不起作用:
AttributeError:type对象“A”没有属性“\u tmpl”
(应该在问题中添加该属性…)解决方法是在类声明之后执行:
A.VAR=tuple(…A.。\u tmpl…
这是类块作用域工作方式的结果,这是一个特例,但是,这并不创建封闭范围,这意味着理解构造(本质上使用函数范围)无法访问类块命名空间中的变量,就像方法在没有
a的情况下无法访问
\u tmpl
一样,但是在类主体
A
中不存在yet@hiroprotagonist确保同时查看这两个答案,这两个答案都有很多好的信息,文档中的相关部分也有:
NameError: name '_tmpl' is not defined