2015-11-18 3 views
0

Что такое питон и эффективный способ импорта библиотек, которые используются в методах класса.Эффективный способ импорта библиотек для методов класса, в 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

Импорт уровня модуля часто более чистый, чем импорт уровня метода - вы можете легко увидеть все, что импортируется в этот файл. –

ответ

2

Я считаю, что вы можете сделать импорт на уровне класса, но вы должны будете тогда называть это как self.exp вместо просто exp, так как импортированные имя будет переменная класса. Но я думаю, что общий импорт на уровне модулей проще и должен быть предпочтительным, если у вас нет конкретной причины делать это иначе (например, циклический импорт или импорт, который не всегда будет доступен).

+0

Отличное примечание. Это работает. Благодарю. –

Смежные вопросы