Опитвам се да стартирам метод на клас в Python 3 на всеки n секунди.
Мислех, че Threading ще бъде добър подход. Въпросът (Изпълняване на определен код на всеки n секунди) показва как да направите това без обекти.
Опитах се да "прехвърля" този код в OOP по следния начин:
class Test:
import threading
def printit():
print("hello world")
threading.Timer(5.0, self.printit).start()
test = Test()
test.printit()
>> TypeError: printit() takes no arguments (1 given)
Получавам тази грешка.
Можете ли да ми помогнете да го направя правилно?
Test.printit()
- person Asad Saeeduddin   schedule 15.11.2014import
вътре в дефиниция на клас. (Има някои редки случаи, в които може да има смисъл, но това не е един от тях.) Направете го на най-високо ниво, в горната част на вашия скрипт. - person abarnert   schedule 15.11.2014@staticmethod
за това. Това, което той е дефинирал, е метод на инстанция, който не може да бъде извикан на инстанция. Вашето предложение като цяло работи, но е подвеждащо. - person abarnert   schedule 15.11.2014