如何只导入python中的类方法

Swi*_*Run 6 python

我有一个GP.py文件,然后我运行MyBot.py文件.

在MyBot.py文件中,我有一行

from GP import *
Run Code Online (Sandbox Code Playgroud)

我怀疑它是导入整个文件而不是我想要的类方法和类描述.在GP.py文件中,除了定义之外还有代码

Bjö*_*lex 13

您不能单独导入类方法,您必须导入类.您可以通过枚举要导入的类来执行此操作:

from GP import class1, class2, class3
Run Code Online (Sandbox Code Playgroud)

请注意,这仍将加载整个模块.如果从模块导入任何内容,则总会发生这种情况.如果您在导入模块时不希望执行该模块中的代码,则可以像这样保护它:

if __name__ == "__main__":
    # put code here
Run Code Online (Sandbox Code Playgroud)

只有在直接运行模块时才会执行块内的代码,而不是在导入模块时执行.


fre*_*rik 5

_single_leading_underscore:弱“内部使用”指标。例如from M import *,不导入名称以下划线开头的对象。

改用这个:

from GP import SomeClass
Run Code Online (Sandbox Code Playgroud)

如果您想使用,请查看PEP-8(Python 指南)import *

设计用于 via 的模块from M import *应使用__all__防止导出全局变量的 机制