大佬教程收集整理的这篇文章主要介绍了Python根据属性获取类对象名称,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,如何获取座位 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',2,100)
p3 = Player('Player3',3,100)
p4 = Player('Player4',4,100)
p5 = Player('Player5',5,100)
P6 = Player('Player6',6,100)
我想您不是想只打印名称 p3.name
。
如果您想跟踪类的所有实例,请参阅:Python: Find Instance of a class by value 和 How to keep track of class instances?
如果我应用上面引用的两篇参考文献中提到的相同逻辑,您的代码可能如下所示:
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_at_seat()
函数是一个类方法,它返回一个迭代器,其中包含 instances
中所有玩家的 seat
属性设置为给定的 seat
值。然后,您可以遍历迭代器并打印第 3 位玩家的姓名。
最简单的方法是将所有玩家对象放入一个列表中,并在列表中循环检查它们的属性,
player_list = [p1,p2,p3,p4,p5,P6]
for player in player_list:
if player.seat == 3:
print(player.Name)
以上是大佬教程为你收集整理的Python根据属性获取类对象名称全部内容,希望文章能够帮你解决Python根据属性获取类对象名称所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。