问题描述
from typing import NamedTuple
class TestClass1(NamedTuple):
member1: str = 'test1'
class TestClass2(NamedTuple):
member2 = 'test2'
if __name__ == '__main__':
print(TestClass1.member1)
print(TestClass2.member2)
输出:
<_collections._tuplegetter>
测试2
解决方法
member1: str = 'test1'
它是创建命名元组类的语法糖,并不意味着 member1 是 TestClass1 的类变量。
如果你想打印'test1',你应该通过TestClass1创建一个对象:
test = TestClass1() //accept one para for member1,default is 'test1'
print(test.member1)