Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中为类方法导入库的有效方法_Python_Class_Python 3.x_Methods_Import - Fatal编程技术网

在Python中为类方法导入库的有效方法

在Python中为类方法导入库的有效方法,python,class,python-3.x,methods,import,Python,Class,Python 3.x,Methods,Import,什么是python和导入整个类方法中使用的库的有效方法 模块级导入是: from numpy import exp class A: def calc1(self): return exp(1) def calc2(self): return exp(1) 方法级导入更干净,但我不确定每次调用方法时是否缓存或导入库: class B: def calc1(self): from numpy import exp return exp(1

什么是python和导入整个类方法中使用的库的有效方法

模块级导入是:

from numpy import exp

class A:
    def calc1(self): return exp(1)
    def calc2(self): return exp(1)
方法级导入更干净,但我不确定每次调用方法时是否缓存或导入库:

class B:
    def calc1(self):
        from numpy import exp
        return exp(1)

    def calc2(self):
        from numpy import exp
        return exp(1)
最后,是否有如下的类级导入

class C:
    from numpy import exp
    def calc1(self): return exp(1)
    def calc2(self): return exp(1)

C().calc1()   # NameError: name 'exp' is not defined

我相信您可以进行类级导入,但是您必须将其命名为
self.exp
,而不仅仅是
exp
,因为导入的名称将是一个类变量。但我认为,一般来说,模块级导入比较简单,应该优先考虑,除非您有特定的理由这样做(例如,循环导入或不总是可用的导入)。

模块级导入通常比方法级导入更干净-您可以很容易地看到该文件中导入的所有内容。