我可以直接在get_random_items()
属性上调用random_items
函数,还是在Python中被认为是不好的做法?
class Items(object):
def __init__(self, tools, toys, food):
self.tools = tools
self.toys = toys
self.yellow = food
self.random_items = self.get_random_items([self.tools, self.toys, self.food])
def get_random_items(self, item_list)
# do stuff to get random items..
return random_items
如果这是不好的做法,那么提供random_items
?
答案 0 :(得分:1)
有效。但是如果你这样做,random_items
的值只会在__init__
期间计算一次。尽管tools
,toys
或food
的值目前已更改,但您始终会获得旧值。
您应该使用property
class Items(object):
def __init__(self, tools, toys, food):
self.tools = tools
self.toys = toys
self.yellow = food
@property
def random_items(self):
return self.get_random_items([self.tools, self.toys, self.food])
def get_random_items(item_list)
# do stuff to get random items..
return some_random_items
您可以在其他功能中使用random_items
like属性。