Julia 中是否有类似 python __dict__ 的东西?

and*_*ame 2 function julia

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

在此处输入图片说明

Bog*_*ski 5

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

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

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

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

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


Vit*_*huk 5

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

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

(:x, :y)
Run Code Online (Sandbox Code Playgroud)

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