Python 3.x Python基于属性获取类对象名称
例如,如何获得座位3中的玩家姓名?谢谢大家! 注意,我不知道p3在其中Python 3.x Python基于属性获取类对象名称,python-3.x,class,Python 3.x,Class,例如,如何获得座位3中的玩家姓名?谢谢大家! 注意,我不知道p3在其中 class Player: def __init__(self, name, seat, balance): self.name = name self.seat = seat self.balance = balance dealer = Player('Dealer', 7, 1000) p1 = Player('Player1', 1, 100) p2 = Player('Player2'
class Player:
def __init__(self, name, seat, balance):
self.name = name
self.seat = seat
self.balance = balance
dealer = Player('Dealer', 7, 1000)
p1 = Player('Player1', 1, 100)
p2 = Player('Player2', 2, 100)
p3 = Player('Player3', 3, 100)
p4 = Player('Player4', 4, 100)
p5 = Player('Player5', 5, 100)
p6 = Player('Player6', 6, 100)
最简单的方法是将你所有的玩家对象放入一个列表&在列表中循环检查它们的属性
player_list = [p1, p2, p3, p4, p5, p6]
for player in player_list:
if player.seat == 3:
print(player.name)
最简单的方法是将你所有的玩家对象放入一个列表&在列表中循环检查它们的属性
player_list = [p1, p2, p3, p4, p5, p6]
for player in player_list:
if player.seat == 3:
print(player.name)
我想你不是想只打印姓名
p3.name
如果您想跟踪您的类的所有实例,请参考:和
如果我应用上面引用的两个参考文献中提到的相同逻辑,那么您的代码可能如下所示:
class Player(object):
# create a class attribute to keep track of all the instances of the class
instances = []
def __init__(self, name, seat, balance):
self.name = name
self.seat = seat
self.balance = balance
Player.instances.append(self)
# class method to access player instances by seat
@classmethod
def get_players_at_seat(cls, seat):
return (p for p in cls.instances if p.seat == seat)
dealer = Player('Dealer', 7, 1000)
p1 = Player('Player1', 1, 100)
p2 = Player('Player2', 2, 100)
p3 = Player('Player3', 3, 100)
p4 = Player('Player4', 4, 100)
p5 = Player('Player5', 5, 100)
p6 = Player('Player6', 6, 100)
# Get iterator containing all players at seat 3
players_at_seat_3 = Player.get_players_at_seat(3)
# Print their names
for player in players_at_seat_3:
print(f"{player.name} is sitting at seat 3")
get_players\u at_seat()
函数是一个类方法,它返回一个迭代器,该迭代器包含实例
中的所有玩家,这些玩家的seat
属性设置为seat
的给定值。然后,您可以在迭代器上进行迭代,并打印座位3上的球员姓名。我想您不是想只打印姓名p3.name
如果您想跟踪您的类的所有实例,请参考:和
如果我应用上面引用的两个参考文献中提到的相同逻辑,那么您的代码可能如下所示:
class Player(object):
# create a class attribute to keep track of all the instances of the class
instances = []
def __init__(self, name, seat, balance):
self.name = name
self.seat = seat
self.balance = balance
Player.instances.append(self)
# class method to access player instances by seat
@classmethod
def get_players_at_seat(cls, seat):
return (p for p in cls.instances if p.seat == seat)
dealer = Player('Dealer', 7, 1000)
p1 = Player('Player1', 1, 100)
p2 = Player('Player2', 2, 100)
p3 = Player('Player3', 3, 100)
p4 = Player('Player4', 4, 100)
p5 = Player('Player5', 5, 100)
p6 = Player('Player6', 6, 100)
# Get iterator containing all players at seat 3
players_at_seat_3 = Player.get_players_at_seat(3)
# Print their names
for player in players_at_seat_3:
print(f"{player.name} is sitting at seat 3")
get_players\u at_seat()
函数是一个类方法,它返回一个迭代器,该迭代器包含实例
中的所有玩家,这些玩家的seat
属性设置为seat
的给定值。然后,您可以在迭代器上迭代,并打印座位3上的玩家姓名。您可以将他们放入列表中,根据.seat
筛选项目,并检查他们的.name
s。使用现有的代码,不需要额外的内务管理,就没有Python技巧可以获得您想要的内容。您可以制作座椅到对象的地图。这是一种方法。您可以将它们放在一个列表中,并根据.seat
筛选项目,并检查它们的.name
s。使用现有的代码,不需要额外的管理,就没有Python技巧可以获得您想要的内容。您可以制作座椅到对象的地图。那将是一种方式。