导入在整个类方法中使用的库的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
答案 0 :(得分:2)
我相信您可以进行类级导入,但是您必须将其称为self.exp
而不是exp
,因为导入的名称将是类变量。但我认为一般来说模块级导入更简单,除非您有特殊原因要做其他事情(例如,循环导入或导入并不总是可用),否则应该首选。(