访问子类的属性
作者: 01110011011101010110010001101111创建于 2026年4月8日更新于 2026年4月21日
哈啰! 我试图访问子类的属性。 例如,我试图运行 这样的东西:
[Python] @ 数据类 类语句 : 通过
@ 数据类 类块( 声明) : 机构: 列表[str]
@ 数据类 类别 : var: str (英语). val: 语句
@ 数据类 类函数 : 名称: str 正文:声明
func body = Block(bodies = ["a"= 1","还原 a").
测试 = 函数( T) 名称="foo", 车体=倒数 (中文(简体) ).
v1 = 测试. body
如果存在( v1, 块) : 机构 = v1. 如果尸体不是无: 用于体内的 stmt: 打印(stmt) 其他情况: 打印( “失败” )
上面的例子,如果函数类的正体属性是块,我想能够通过它的正体属性中的值来排列. 上面的“ codon experiments.py: 39( 14-23): 错误 : “ 声明” 对象没有属性“ bodies” 。
我试图用一个在家长班的NoneType的联盟:
```2ZZ
@ 数据类
类语句 :
机构: 列表[str] QQ NoneType = 无
var: str | noneType = 无
Val: 语句 QQ NoneType = 无
@ 数据类
类块( 声明) :
机构: 列表[str] QQ NoneType
@ 数据类
类别 :
var: str \ noneType (英语).
Val: 语句 QQ NoneType
@ 数据类
类函数 :
名称: str
正文:声明
func body = Block(bodies = ["a"= 1","还原 a").
测试 = 函数( T)
名称="foo",
车体=倒数
(中文(简体) ).
v1 = 测试. body
如果存在( v1, 块) :
机构 = v1.
如果尸体不是无:
用于体内的 stmt:
打印(stmt)
其他情况:
打印( “失败” )然而,上述情况没有做到:
Assert 失败: 联盟已经封存 [core.codon: 237: 1]
表达式 : ! Is Sealed ()
资料来源:/GitHub/工作空间/Codon/parser/ast/types/union.cpp:107。
中止(核心倾销)最后,我尝试了选取型,但结果总是“无”值:
@ 数据类
类语句 :
机构: 可选 [list [str] = 无
var:可选 [str] = 无
Val:可选[声明]=无
@ 数据类
类块( 声明) :
机构: 可选 [list [str]
@ 数据类
类别 :
var:可选 [str] (中文(简体) ).
val: 可选[声明]
@ 数据类
类函数 :
名称: str
正文:声明
func body = Block(bodies = ["a"= 1","还原 a").
测试 = 函数( T)
名称="foo",
车体=倒数
(中文(简体) ).
v1 = 测试. body
如果存在( v1, 块) :
机构 = v1.
如果尸体不是无:
用于体内的 stmt:
打印(stmt)
其他情况:
打印( “失败” )上述内容汇编并运行,但总是打印出`失效'。
你对如何处理这件事有什么建议吗? 谢谢!
内容来源: exaloop/codon