Python 连接类和赋值
我创建了两个类,一个叫做Python 连接类和赋值,python,Python,我创建了两个类,一个叫做进攻,另一个叫做防御。我很难让用户选择运行游戏,当游戏互相对抗时,更大的游戏获胜。我相信通过将进攻类添加到防御类的参数中,我已经正确地继承了防御类。但是,在创建了一个规则,即在防御类中,进攻游戏少于防御游戏之后,什么也没有发生 这是我的密码: class Offense(): def __init__(self): self.play1 = 'run' off_1 = Offense() class Defense(Offense):
进攻
,另一个叫做防御
。我很难让用户选择运行
游戏,当游戏互相对抗时,更大的游戏获胜。我相信通过将进攻
类添加到防御
类的参数中,我已经正确地继承了防御
类。但是,在创建了一个规则,即在防御类中,进攻
游戏少于防御
游戏之后,什么也没有发生
这是我的密码:
class Offense():
def __init__(self):
self.play1 = 'run'
off_1 = Offense()
class Defense(Offense):
def __init__(self):
self.play1 = 'run'
defen_1 = Defense()
off_1.play1 < defen_1.play1
if off_1.play1 < defen_1.play1:
print("Defense wins")
class offension():
定义初始化(自):
self.play1='run'
off_1=进攻()
阶级防御(进攻):
定义初始化(自):
self.play1='run'
防御1=防御()
场外1.play1<防守1.play1
如果关闭1.play1<防御1.play1:
打印(“防御胜利”)
您的代码似乎无法与戏剧的“伟大”相比较。它检查进攻比赛的名称是否按字母顺序排在防守比赛的名称之前。这两者是不相等的,所以你的代码不会打印任何东西
你没有“规则”说进攻比防守少。您确实插入了布尔表达式并丢弃了结果,但这并不构成“规则”。Python没有这样的结构:您需要自己实现它
总的来说,我认为您需要再次完成程序设计。确定您想要的属性并实现这些属性。也许你会想要一个游戏
课程,从中继承进攻
和防守
;也许你只需要两个游戏实例,一个用于进攻,一个用于防守
然而,为了比较哪一个更大,我认为你需要对组合进行一些数值计算。你发布的代码没有这样的功能。这里没有理由使用继承:
防御
不是一种进攻
(请不要开“最好的防御就是好的进攻”的玩笑)。所有的off\u 1.play1
都是比较一个值和另一个值。它不会神奇地使第一个值小于第二个值。看起来您正试图在\u lt\uuuuuuuuu、\uuuuu gt\uuuuuuuuuu eq\uuuuu>操作符上使用运算符重载来比较播放,也许?或者只是一个将播放类型映射为数值的dict?什么你想用这段代码实现吗?你不需要通过防御类传递父类来定义防御类中的实例。当你通过父类传递实例时,你会将实例继承到子类中。@chepner我明白你的意思。谢谢你,我确实做了一个play类,但被压倒了ed.你说的很有道理。很好。在我看来,在进行更多的实现之前,你需要巩固游戏引擎的设计。设计驱动数据表示和控制流;这驱动你进行编码设计。这意味着你距离下一个堆栈溢出问题还有两个主要步骤。:-)