2016-12-15 3 views
0

tkinterを使ってティックタックのつま先を作っています。しかし、私はターンの値をバンプアップするとき、私は属性エラーを取得します: 'function'オブジェクトには 'called'属性がありません。私はコンピュータが、それはあなたがこの変数に1を追加します(ただし、機能player_move()を作成した後、それを作成)する前に、いくつかの値でplayer_move.calledを作成する必要がデコレータなしでボタンが何回クリックされたかをカウントする(Python)

def player_move(widget): 
    if widget["o"] not in ("o", "x"): 
     widget["text"] = "o" 
     widget["state"] = "disabled" 
     player_move.called += 1 #The part I want to add to 
     computer_move() 

def computer_move(): 
    # computer moves 2nd time 
    if i["text"] == " ": 
     i["text"] = "x" 
     i["state"] = "disabled" 
    else: 
     c["text"] = "x" 
     c["state"] = "disabled" 
    if player_move.called == 1 and c["text"] == "x": 
     print("whgwhgg") #Just for testing 
+0

外部関数は、通常の変数 'player_move_called = 0'(ドットで奇妙な' player_move.called'を作成しません)を作成します。 - 開始値が '0'のグローバル変数を作成します。そして、後で 'player_move'の中で' global_player_move_called'を使って、ローカルではなく外部/グローバル変数を使用したいということを関数に通知します。 'computer_move'でも' player_move_called'を使いますが、 'player_move_called'の値を変更しないので' global_play_move_called'を使う必要はありません。 – furas

答えて

0

まず電源を入れますスキップされませんので、

def player_move(widget): 
    # ... 
    # add 1 to existing variable 
    player_move.called += 1 #The part I want to add to 

# create variable with some value 
player_move.called = 0 
これをやっています
関連する問題