Я совершенно новичок в концепции класса python. После поиска решения в течение нескольких дней, я надеюсь, что я получу помощь здесь:Использование импорта внутри класса
Я хочу класс python, где я импортирую функцию и использую ее там. Основной код должен иметь возможность вызывать функцию из класса. для этого у меня есть два файла в одной папке.
Благодаря @cdarke, @DeepSpace и @MosesKoledoye, я редактировал ошибку, но, к сожалению это не так.
я все еще получаю ошибку:
test 0
Traceback (most recent call last):
File "run.py", line 3, in <module>
foo.doit()
File "/Users/ls/Documents/Entwicklung/RaspberryPi/test/test.py", line 8, in doit
self.timer(5)
File "/Users/ls/Documents/Entwicklung/RaspberryPi/test/test.py", line 6, in timer
zeit.sleep(2)
NameError: global name 'zeit' is not defined
@wombatz получил правильный совет: он должен быть self.zeit.sleep (2) или Test.zeit.sleep (2). импорт может быть также выполнен над объявлением класса.
Test.Py
class Test:
import time as zeit
def timer(self, count):
for i in range(count):
print("test "+str(i))
self.zeit.sleep(2) <-- self is importent, otherwise, move the import above the class declaration
def doit(self):
self.timer(5)
и
run.py
from test import Test
foo = Test()
foo.doit()
когда я пытаюсь python run.py
я получаю эту ошибку:
test 0
Traceback (most recent call last):
File "run.py", line 3, in <module>
foo.doit()
File "/Users/ls/Documents/Entwicklung/RaspberryPi/test/test.py", line 8, in doit
self.timer(5)
File "/Users/ls/Documents/Entwicklung/RaspberryPi/test/test.py", line 6, in timer
sleep(2)
NameError: global name 'sleep' is not defined
Из-за ошибки я понимаю, что импорт в классе не распознается. Но как я могу добиться того, что импорт в классе признан?
Возможно, вы имеете в виду 'zeit.sleep (2)' – cdarke
@cdarke на самом деле 'zeit.sleep', поскольку OP использует' as' – DeepSpace
@DeepSpace: мое редактирование перечеркнуто над вашим комментарием. Спасибо – cdarke