试图打印一个类的对象时出现名称错误。

问题描述 投票:0回答:1

我是python新手,需要一些帮助。我的代码如下。我试图从输入的用户信息列表中获取格式化的表格,但一直收到错误信息 "NameError: name 'games' is not defined",不知道我做错了什么,请帮助我。

class game():
    def _init_(self,name,platform,genre,no_of_players,online_functionality):
        self.name = name
        self.platform = platform
        self.genre = genre
        self.no_of_players = no_of_players
        self.online_functionality = online_functionality


    def __repr__(self):
        print()
        print("%-15s%-15s%-15s%-15s%-15s" % ("name" , "platform" ," genre" ,"no_of_players","online_functionality"))
        print("---------------------------------------------------------------------------------")
        print("%-10s%-10s%-10s%-10s%-10s%" %(games.name,games.platform,games.genre,games.no_of_players,games.online_functionality))
        print()


    def __str__(self):
        print()
        print("%-15s%-15s%-15s%-15s%-15s" % ("name" , "platform" ," genre" ,"no_of_players","online_functionality"))
        print("------------------------------------------------------------------------")
        print("%-10s%-10s%-10s%-10s%-10s%" %(games.name,games.platform,games.genre,games.no_of_players,games.online_functionality))#formats and aligns columns
        print()

def get_game_from_user():

    gameList =[]
    games = game()
    games.name= input("Enter name of game: ") 
    games.platform= input("Enter Platform (e.g. XBox, PlayStation, PC etc: ")
    games.genre = input("Genre (e.g. Sport, Shooter, Simulation etc.): ")
    games.no_of_players= int(input("Enter number of players: "))
    games.online_functionality= input("Enter if it has online functionality or not : ")
    gameList.append(games)
    print(gameList)
list class object attributes
1个回答
0
投票

第一个问题。

使用 self 在您的类中访问您的对象,而不是 games...把这些:

games.name, games.platform , games.genre, ...

和其他类似的东西改成这些:

self.name, self.platform , self.genre, ...

第二个问题:

在你的代码中,你必须 return 你想要的东西在里面 __str____repr__print 他们。

def __repr__(self):
        result = ""
        result += "%-15s%-15s%-15s%-15s%-15s" % ("name" , "platform" ," genre" ,"no_of_players","online_functionality\n")
        result += "---------------------------------------------------------------------------------\n"
        result += "%-10s%-10s%-10s%-10s%-10s" %(self.name,self.platform,self.genre,self.no_of_players,self.online_functionality)
        result += "\n"
        return result

来源:: python数据模型

© www.soinside.com 2019 - 2024. All rights reserved.