簡體   English   中英

類型對象沒有屬性Python

[英]Type Object has no attribute Python

自2.7版本問世以來,我已經很長時間沒有用python編碼了。 我正在嘗試制作一個簡單的井字游戲,但是如果我嘗試在TicTacToe對象中引用一個屬性。 它拋出一個運行時異常,說TicTacToe沒有這樣的屬性。 有任何想法嗎?

class TicTacToe(object):

def __init__(self):
    '''
    :return: TicTacToe object
    '''
    self.turn = 1
    self.deckList = [Deck()]
    self.player1 = Player()
    self.player2 = Player()
def validateInput(self, num):
    if type(num) is not int:
        print('Not an integer 0-8')
        return 
    elif num < 0 | num > 8:
        print('Not between 0-8')
        return

def getUserInput(self, turn):
    if turn == 1:
        choice = input('Player 1: Enter 0-8\n')
        #turn = 2
    elif turn == 2:
        choice = input('Player 2: Enter 0-8\n')
        #turn = 1
    return choice

def startGame(self):
    player1Name = input('Player 1: Enter your name\n')
    player2Name = input('Player 2: Enter your name\n')
    self.player1.Player.setName(player1Name)
    self.player2.Player.setName(player2Name)
    player1Mark = input('Player 1: Enter your mark\n')
    player2Mark = input('Player 2: Enter your mark\n')
    if player1Mark == player2Mark:
        print('You both cannot have the same mark\n')
        return
    else:
        self.player1.setMark(player1Mark)
        self.player2.setMark(player2Mark)

    while True:  # Main loop
        choice = self.getUserInput(self.turn)

主要

from TicTacToe import TicTacToe
if __name__ == '__main__':
    game = TicTacToe
    game.startGame(game)
    pass

我這里還有其他課程,玩家課程和Deck(Board)課程

import numpy as np

class Deck(object):
    def __init__(self):
        """
        :return: Deck
        """
        board = np.matrix([-1,-1,-1],[-1,-1,-1],[-1,-1,-1])
        player1Choices = []
        player2Choices = []

    def __str__(self):
        return self.board

class Player(object):

def __init__(self):
    """
    :return: A new Player
    """
    name = None
    mark = None
    statistics = [0, 0, 0]  # [Win, Tie, Lost]

def setName(self, name):
    """
    :param name: Set name of player
    """
    self.name = name
def setMark(self, mark):
    """
    :param mark: Set mark of player
    """
    self.mark = mark
def getScore(self):
    """
    :return: Statistics of player
    """
    score = ((self.statistics[0] * 2) + self.statistics[1] - self.statistics[2])
    return score
def __str__(self):
    """
    :return: String representation of values inside Player
    """
    return "Name: " + self.name + "\nMark: " + self.mark + "\nScore: " + self.getScore() + "\n"
def __cmp__(self, player):
    """
    :param: A Player 
    :return: Winner
    """
    if self.getScore() > player.getScore():
        return self
    elif self.getScore() < player.getScore():
        return player
    else:
        return None
 game = TicTacToe 

構造函數需要括號(和可選參數)。

game = TicTacToe()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM