提问人:somehelplease 提问时间:8/1/2023 最后编辑:Barmarsomehelplease 更新时间:8/1/2023 访问量:45
为什么当我在 init 方法中要求用户输入时,我的实例变量显示为未定义
Why is my instance variable coming up as undefined when I ask for user input in my init method
问:
当我要求用户输入我的类时,变量显示为未定义。
当我在我的方法中运行它时__init__
import random
import math
players=[]
player_names=[]
cards=[2,3,4,5,6,7,8,9,'kings','queens','aces']
class Player:
def __init__(self,name,money,cardl,bust,bet=None):
self.name=name
self.name=input('enter in your name')
while cls.name in player_names:
print('username taken')
cls.name=input('Enter in name')
self.money=money
money=0
self.bet=bet
bet=float(input("What is your bet"))
self.busted=busted
self.cardl=[]
self.cardl.append(random.sample(cards,1))
self.cardl.append(random.sample(cards,1))
self.busted=False
player=Player(name,money,cardl,bust,bet)
players.append(player)
print('Welcome',player.name)
class dealer(Player):
pass
我希望允许用户开始向变量中输入值,但我得到了
player=Player(name,money,cardl,bust,bet)
NameError: name 'name' is not defined
因此,我决定通过以下方式运行该方法:__init__
__init__()
NameError:未定义名称“__init__”
答:
0赞
Merithor
8/1/2023
#1
调用类构造函数时,变量尚不存在,因此无法创建对象。您可以将它们初始化为空,但随后应立即正确初始化它们。玩家名称的检查可以通过以下方式实现:
import gc
player_name_list = []
# get all the current player names
for obj in gc.get_objects():
if isinstance(obj, Player):
player_name_list.append(obj.name)
name=input('enter in your name')
while name in player_name_list:
print('username taken')
name=input('Enter in name')
评论
0赞
somehelplease
8/2/2023
谢谢你,这有帮助。另外,我有一个问题,栈溢出的人在业余时间随机回答问题,因为他们很无聊,或者你对自己说我今天至少需要帮助一个人?
0赞
Merithor
8/3/2023
@somehelplease很高兴能帮上忙。如果您将我的评论标记为正确答案,我将不胜感激!就我而言,我通常在编译代码或运行查询时滚动浏览 stackoverflow ;)
评论
name = input("What is your name? ")
__init__()
self.busted = busted
bust
self.busted = False
False
busted