提问人:NateBradshaw 提问时间:12/29/2021 更新时间:12/29/2021 访问量:36
在 Python 中,如何更改函数将根据参数查找的类属性?[复制]
In Python, how do I change which class's attribute a function will look for based on a parameter? [duplicate]
问:
我想使用相同的函数两次,但更改该函数将使用的类属性。它如下所示:
class Player:
def __init__(self):
self.primary_color = 'blue'
self.secondary_color = 'pink'
def show_color(self, color_attribute)
print(color_attribute)
player = Player
print(player.show_color(primary_color))
>>>'blue'
print(player.show_color(secondary_color))
>>>'pink'
这个特殊的颜色示例可能不是很有帮助,但我正在从事的项目将从这种能力中受益匪浅。
答:
0赞
e.Fro
12/29/2021
#1
在这种情况下,函数应该是静态的,因为它不直接使用类属性。一个快速的解决方案是将属性直接传递给函数:show_color
player = Player()
print(player.show_color(player.primary_color))
>>>'blue'
print(player.show_color(player.secondary_color))
>>>'pink'
但正如我所说,该函数在类中没有多大意义。根据您的最终用例,您可以直接访问该属性:Player
print(player.primary_color)
>>>'blue'
print(player.secondary_color)
>>>'pink'
评论
show_color