Найти - Пользователи
Полная версия: импорт из класса/объекта в глобальную область видимости
Начало » Python для новичков » импорт из класса/объекта в глобальную область видимости
1
Florenzo


Можно ли сделать import math глобально из класса или метода?

 class A():
     def __init__(self, number):
         self.number = int(number)
         # import math
     def value(self):
         if self.number == 9:
            import math
            return math.sqrt(self.number)

 >>> a1 = A(9)
>>> a1.value()
3.0
>>> math.sqrt(16)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined

Ну и, вероятно на ту же тему:

хочу распечатать содержимое “import this” - не сразу, а как-нибудь потом в программе, как это сделать?
так, разумеется не хочет:

a = import this
print(a)

JOHN_16
Florenzo
Можно ли сделать import math глобально из класса или метода?
технически да, можно получить к глобальной области видимости, но это такой жуткий костыль, что напрашивает вопрос - А зачем вам это? Почему нельзя просто в начале модуля импортировать нужный модуль?

Florenzo
хочу распечатать содержимое import this - потом, как это сделать?
так, разумеется не хочет:

a = import this
print(a)
а вы посмотрите на исходник этого файла и сразу все поймете. Если не поймете, то спросите чт оименно вам там не понятно
Vladimirv
А что случилось с копипастом?
import this
s=this.s
d = {}
for c in (65, 97):
for i in range(26):
d[chr(i+c)] = chr((i+13) % 26 + c)

print("".join([d.get(c, c) for c in s]))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB