oop的新手。用Python 3编写。
我正在开发一款多人游戏。这些是我需要的类。
看起来很明显,session应该是玩家和gameroom的子实例,但是,session的实例如何知道gameroom和玩家的哪个实例是它的父母呢?然而,session的实例如何知道gameroom和player的哪个实例是它的父母?
假设
现在我想要一个 "session "的实例,玩家ID=2,房间ID=2。 我如何将房间ID和玩家ID "传递 "到新的session实例?
这是正确的实现吗?或者我可以用某种方式隐式地创建一个session的实例,而不需要将player和room保存在一个变量中?
from player import player
from room import room
class session(player,room):
def __init__(self, player: player, room: room):
self.point = 0
self.player = player
self.room = room
print('player {} has joined room {}'.format(player.id,room.id))
继承在这里不是正确的工具。你应该只通过一个 player
和a room
实例到 __init__
方式 session
.
继承是用来模拟类的扩展。如果一个类继承了另一个类,如 Car
继承 Vehicle
而你实例化了一个 Car
含有 car = Car()
, car
也是一个例子 Vehicle
.
您可以在本手册的应用部分阅读更多关于此主题的内容。维基百科文章 继承上。
类似这样,假设Player和Room有实例属性name和roomID。
class Session(Player,Room):
def __init__(self, name, roomID ):
Player.__init__(self, name)
Room.__init__(self, roomID)
self.point = 0
print('player {} has joined room {}'.format(name,roomID))