python-3.x - 在 typing.NamedTuple 的子类中 member: str = 'test' 和 member = 'test' 有什么区别?
问题描述
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 对象位于 0x117e20c10>
测试2
解决方案
member1: str = 'test1'
它是创建命名元组类的语法糖,并不意味着 member1 是 TestClass1 的类变量。
如果你想打印'test1',你应该通过TestClass1创建一个对象:
test = TestClass1() //accept one para for member1, default is 'test1'
print(test.member1)
推荐阅读
- .net - 我的转换后的桌面应用程序在 UWP 中有哪些限制
- serviceloader - java.util.ServiceLoader 是否可以在不重新启动的情况下找到添加到类路径中的新 jar?
- php - curl_multi_exec 显示不同的运行
- reactjs - Reactjs:关于表单提交
- ios - 由于 1 个错误和 1 个警告,规范未通过验证
- java - 小于 1 像素的绘图对象 (Graphics2D/Java)
- ios - Swift4:标签栏布局问题,有一个空白栏
- c# - Unable to load Npgsql from a .NET class library xUnit test
- r - 如何在 R 中查找和计算 Excel 文件的特定数据?
- c - 为什么我的程序在运行时会崩溃