我是一个python初学者(python 2.7和ironpython2.7),而不是程序员。 有时,我发现一个代码的开头是这样的:
import clr
clr.AddReferenceToFile("nameOfmodule")
from nameOfmodule import someMethod
这有什么意义? 我们就不能用:
from nameOfmodule import someMethod
是吗?
我试着用谷歌搜索,但还没有真正理解其中的原因。
谢谢你的回复。
编辑:“fromnameofmoduleimportsomemethod”和“import nameOfmodule.someMethod”之间没有混淆。我编辑了代码,所以现在更有意义了。
在第二个例子中,当您想要调用方法时,仍然必须使用
nameOfmodule.someMethod(...)
,在第一个例子中,您只需要someMethod(…)。如果你用import nameOfmodule.someMethod as sm
那就更有意义了。如果您喜欢键入,或者在代码中的某个地方定义了另一个
someMethod
,请使用第二个示例。使用
os.path
的示例:只有在使用
Ironpython
时,clr才相关:有一篇博文here更详细
你在用IronPython和.NET吗?如果是这样,那么第一个示例中的代码需要在IronPython中添加一个.NET程序集作为引用,以便Python可以导入它。
否则你不需要这么做,
from nameOfmodule import someMethod
就可以了。注意,第二个示例中的代码对于在标准Python模块中导入函数是不正确的。您可以:
或者
但下面会给您一个错误:
对于最新版本的Python for.NET,您不需要使用
import clr
和AddReferenceToFile
,但它仍然适用于向后兼容,因此您正在研究的示例可能仍然使用它,因此它们适用于更多的人。对于最新版本,可以将CLR程序集视为普通的Python模块:
clr
是由Microsoft的.NET框架提供的公共语言运行库。因此,在您的示例中,脚本使用clr
,这样它就可以引用用C#或Visual Basic编写的组件,并将其制作成一个库,以便与其他组件一起使用。http://pythonnet.github.io/有更多信息。
相关问题 更多 >
编程相关推荐