Julia 中 Python 的 getattr() 的等价物是什么?我尝试了以下元编程代码,但它仅适用于全局范围,而不适用于函数范围。
type A
name
value
end
a = A("Alex",1)
for field in fieldnames(a)
println(eval(:(a.$field)))
end
这将打印出:
Alex
1
但是,如果上面的内容在函数作用域内,那么它将不起作用
function tmp()
a = A("Alex",1)
for field in fieldnames(a)
println(eval(:(a.$field)))
end
end
tmp()
错误是:
ERROR: LoadError: UndefVarError: a not defined
最佳答案
您想使用getfield
.
julia> function tmp()
a = A("Alex",1)
for field in fieldnames(a)
println(getfield(a, field))
end
end
tmp (generic function with 1 method)
julia> tmp()
Alex
1
关于julia - Julia 中的 getattr() 相当于什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436545/