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

时间:2015-11-18 22:00:51

标签: 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)

    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

1 个答案:

答案 0 :(得分:2)

我相信您可以进行类级导入,但是您必须将其称为self.exp而不是exp,因为导入的名称将是类变量。但我认为一般来说模块级导入更简单,除非您有特殊原因要做其他事情(例如,循环导入或导入并不总是可用),否则应该首选。(