데코레이터를 사용하여 메소드에 속성을 추가하여 호출되었는지 확인하려고합니다. 내가 왜이 오류있어 알아낼 수 없다 : TypeError : bet() missing 1 required position argument : 'betsize'.python 데코레이터를 사용하여 메소드에 속성을 추가하십시오.
파일 game.py
class Game(object):
def __init__(self):
..
@AddCalled
def bet(self, betsize):
print(betsize)
파일 addcalled.py :
class AddCalled(object):
def __init__(self, f):
self.f = f
self.called = False
def __call__(self, *args, **kwargs):
self.f(*args, **kwargs)
self.called = True
은 내가 Qt는 신호 (버튼 클릭)에서 betsize를 얻을. 대상 슬롯 기능은 game.py에서() 내기
Traceback (most recent call last):
File "/home/njl/projet/mainui.py", line 27, in bet
self.game.bet(self.ui.betLine.text())
File "/home/njl/projet/addcalled.py", line 15, in __call__
self.f(*args, **kwargs)
TypeError: bet() missing 1 required positional argument: 'betsize'
나는 몇 가지를 부탁드립니다 내가 내기 버튼을 클릭 할 때마다 나는이 오류가있어 지금
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
..
self.connect(self.ui.btnBet, SIGNAL("clicked()"), self.bet)
def bet(self):
#assuming 'game' is an instance of Game()
self.game.bet(self.ui.betLine.text())
파일 mainui.py 도움. 거기에 갇힌 Litteraly.
코드에 오류가 있습니다 :'self.f'를 사용하여 함수를'__init__'에 저장하지만'call'에'self.func'를 사용하여 액세스하려고 시도합니다. – BrenBarn
덧붙여 말하면, 메서드에 속성을 저장하면 메서드에 의해 호출 될 때 한 번만 설정됩니다. 게임의 주어진 인스턴스에서'bet '이 호출되었는지 여부는 알려주지 않습니다. 이 문제가'called' 속성을 어떻게 사용할 것인지에 달려 있습니다. – BrenBarn
오, 죄송합니다. 실제로 제 코드에 잘 쓰여 있습니다. 나는 방금 그것을 편집했다 @ BrenBarn – khanh