В моем текущем рабочем каталоге у меня есть файлы active.ipynb, который содержит класс B, подкласс A, и у меня есть A.py, где определен A.
Когда я определяю все в записной книжке (т. Е. Класс A и B определяются в ячейке записной книжки), все отлично работает, чего я и ожидаю.Когда класс А перемещается в собственный файл, у меня возникают проблемы.Импорт математики в классе B не помогает, и я также проверил это в отдельном блокноте из моего реального проекта, чтобы убедиться, что я не делаю что-то вредное.
Рассмотрим
A.pyсодержание:
#edited to reflect this issue occurring regardless of import location
import math
class A:
def method(self):
#parent related code...
self.parentmethod()
def parentmethod(self):
print(math.pi)
В моей текущей ячейке у меня есть:
import A
class B(A.A):
def method(self):
#child related overridden code...
self.parentmethod()
b = B()
b.method()
, и я получаю следующую ошибку:
NameError Traceback (most recent call last)
<ipython-input-84-42c1e6969f03> in <module>
9 b = B()
10
---> 11 b.method()
<ipython-input-84-42c1e6969f03> in method(self)
5 def method(self):
6 #child related code...
----> 7 self.parentmethod()
8
9 b = B()
~\Documents\Projects\FunctionNetwork\A.py in parentmethod(self)
7
8 def parentmethod(self):
----> 9 print(math.pi)
NameError: name 'math' is not defined
Что происходит?