我正在使用python2.7上的kivy。據我所知,在處理父數據時,self並不是一個真正的參數,而是一個在函數中使用的工具。然而在下面的使用中,python認爲自己是一個真實的論點。這是因爲我在函數中調用它?需要自我作爲參數
class Verdo(BoxLayout):
defualtval = ""
tarih = StringProperty(str(datetime.datetime.now()).split(".")[0])
istipitxt = StringProperty(defualtval)
iscitxt = StringProperty(defualtval)
iskodtxt = StringProperty(defualtval)
baslabittxt = StringProperty(defualtval)
parcanotxt = StringProperty(defualtval)
def start(self):
Clock.schedule_interval(self.callback, 0.5)
def callback(self, dt):
print "testo"
self.tarih = StringProperty(str(datetime.datetime.now()).split(".")[0])
start()
#Clock.schedule_interval((lambda dt: updater(), 1), 0.5)
#Clock.schedule_interval((lambda dt: tell(), 1), 0.5)
當代碼運行時,下面的錯誤發生:
2015-04-07 22:05:03.081739
Traceback (most recent call last):
File "/home/toshy/workspace/Verdo_reborn/main.py", line 28, in <module>
class Verdo(BoxLayout):
File "/home/toshy/workspace/Verdo_reborn/main.py", line 79, in Verdo
start()
TypeError: start() takes exactly 1 argument (0 given)
我也試過一個更簡單的方法也失敗:
def callback(self, dt):
print "testo"
self.tarih = StringProperty(str(datetime.datetime.now()).split(".")[0])
Clock.schedule_interval(callback, 0.5)
輸出:
ret = callback(self._dt)
TypeError: callback() takes exactly 2 arguments (1 given)
您的縮進是正確的嗎?在你的例子中,你正在調用沒有對象的start()(例如'x.start()')。 – AlG
我遇到的問題是類由kivy主循環調用,這就是爲什麼我試圖讓該函數在類中運行。 – Zalanas