Julia中是否有类似python__dict__的东西?

Python 有dictdocinit等等。朱莉娅有类似的东西吗?我如何知道 Julia 包的函数名称?

回答

使用该names函数获取模块导出的所有名称的列表(因为这是我假设您正在寻找的)。请注意,该列表将特别包括:函数、类型、变量和其他模块。以下是其文档字符串的摘录,为您提供了更多详细信息:

names(x::Module; all::Bool = false, imported::Bool = false)

获取 a 导出的名称数组Module,不包括不推荐使用的名称。如果all为 true,则该列表还包括模块中定义的非导出名称、不推荐使用的名称和编译器生成的名称。如果imported为 true,则还包括从其他模块显式导入的名称。

由于 Julia 设计,您应该注意两个问题:

  • 一些包选择不导出名称,但假设它们应该总是合格的;这是例如 CSV.jl 包的情况
  • 除了函数之外的对象可以在 Julia 中调用(类型可以作为构造函数调用,变量可以变成函子)

回答

除了用于模块的函数names(例如names(Gadfly))。如果要获取对象的所有属性,有两个函数:

  1. fieldnames - 返回对象的字段列表,例如
struct Point
  x
  y
end
> propertynames(Point(2,3))

(:x, :y)

propertynames- 返回对象所有属性的列表。通常与 fieldnames 加上用户定义的属性相同(在大多数情况下,您应该使用此函数而不是fieldnames


以上是Julia中是否有类似python__dict__的东西?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>