Python';属性错误:';功能';对象没有属性';金额';
如果这个错误看起来很明显,我深表歉意;我对Python非常陌生 我想写一小部分轮盘赌模拟器。 我的代码当前如下所示:Python';属性错误:';功能';对象没有属性';金额';,python,attributes,attributeerror,Python,Attributes,Attributeerror,如果这个错误看起来很明显,我深表歉意;我对Python非常陌生 我想写一小部分轮盘赌模拟器。 我的代码当前如下所示: import os import random import copy red = {1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36} black = {2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35} ba
import os
import random
import copy
red = {1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36}
black = {2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35}
balance = 512 # we start with 512$
class Bet:
def __init__(self, color_param, amount_param):
self.color = color_param
self.amount = amount_param
def __repr__(self):
return "<Bet color:%r amount:%r>" % (self.color, self.amount)
class Result:
def __init__(self, number_param, color_param):
self.number = number_param
self.color = color_param
def __repr__(self):
return "<Result number:%r color:%r>" % (self.number, self.color)
def roll():
result_number = random.randint(0, 36)
if result_number in red:
return Result(result_number, "red")
elif result_number in black:
return Result(result_number, "black")
else:
return Result(result_number, "green")
def bet(result, former_result, former_bet):
if result.number in red:
if (former_result is not None) and (former_bet is not None) and (former_result.number in red):
current_bet = Bet("black", former_bet.amount * 2)
else:
current_bet = Bet("black", 1)
elif result.number in black:
if (former_result is not None) and (former_bet is not None) and (former_result.number in black):
current_bet = Bet("red", former_bet.amount * 2)
else:
current_bet = Bet("red", 1)
else:
current_bet = None
return current_bet
def main():
former_result = None
former_bet = None
for x in range(0, 10):
result = roll()
current_bet = bet(result, former_result, former_bet)
print(repr(former_result))
print(repr(former_bet), "\n")
former_result = copy.deepcopy(result)
former_bet = copy.deepcopy(bet)
print(repr(result))
print(repr(current_bet), "\n")
我得到以下错误:
AttributeError: 'function' object has no attribute 'amount'
到目前为止,谷歌搜索没有发现任何我能理解的东西。
我做错了什么
解决方案:我的意思是
preform\u bet=copy.deepcopy(current\u bet)
而不是preform\u bet=copy.deepcopy(bet)
你能把完整的追踪发回来吗问题是preform\u bet
不是你想象的那样。我不认为这句话:former\u bet=copy.deepcopy(bet)
是你想要的。这使得former_-bet
指向bet
函数。这应该是former\u-bet=copy.deepcopy(current\u-bet)
?@Johnrednex,也许你的意思是former\u-bet=copy.deepcopy(current\u-bet)
而不是former\u-bet=copy.deepcopy(bet)
@FamousJameous和@kuro,谢谢你们,这就是解决方案。
AttributeError: 'function' object has no attribute 'amount'