我嘗試了研究,但我能找到的只是訪問另一個類變數的方法,所以這是我的問題:
我希望我的 Monster() 類在它的方法中互動一個代碼,該代碼將從Player() 類中的變數pkt中減去 -10。
我試過:
super(Player, self)._ _init_ _(pkt) -= 10
但它列印了 SyntaxError 說“這是一個非法的擴充賦值運算式。”
你能幫忙嗎?這是代碼:
from abc import ABC, abstractmethod
from random import random
class GameObject(ABC):
def __init__(self, pkt):
self.pkt = pkt
@abstractmethod
def is_alive(self):
return self.pkt > 0
def interact(self):
pass
class Player(GameObject):
def __init__(self):
super().__init__(50)
def is_alive(self):
super().is_alive()
def interact(self):
pass
class Door(GameObject):
def __init__(self):
super().__init__(50)
def is_alive(self):
pass
def interact(self):
print("Player went through the door.")
class Monster(GameObject):
def __init__(self):
super().__init__(50)
def is_alive(self):
pass
def interact(self):
super(Player, self).__init__(pkt) -= 10
print('Player killed the Monster.')
p1 = Player()
board = []
for i in range(0,10):
if random() < 0.70:
board.append(Monster())
else:
board.append(Door())
for i in board:
if p1.is_alive() == False:
break
else:
i.interact()
print(p1.pkt)
uj5u.com熱心網友回復:
你需要做的就是
def interact(self, player):
player.pkt -= 10
與player型別Player。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/472799.html
上一篇:如何排列矩形?
下一篇:更有效地設定物件屬性
