Account.find_by_access_token
出于某种原因,它只有在我完全定义类外的列表内容时才有效,这可能会影响更大项目的顺序和调试。
有没有办法让这段代码工作,这让我可以在类中定义列表?好像要使它成为特定于类的"全局"变量,仅对类中的方法/变量有效。
注意:该课程应该是一个篮子!每种水果本身都称为篮子,但它们是水果。我希望他们都在一个篮子里面。
答案 0 :(得分:-1)
这整个答案只是一个冗长的解释,说明为什么你不应该做你正在做的事情......
"注意:该课程应该是一个篮子!每种水果本身都称为篮子,但它们是水果。我希望他们都在一个篮子里。"
在尝试解决这个谜语之前,你的实际问题必须放在透视中。
Fruit
和 Basket
"每种水果都被称为篮子"
资金错误!这就像棋盘和棋子。一个人不能简单地成为另一个人。
"我希望他们都在一个篮子里。"
如果通过" all"你的意思是"所有的水果"然后就可以做到。
要将内容放入透视图中,首先修改类名称,如下所示:
class Fruit(object):
def __init__(self, name):
self.name = name
现在必须有另一个名为Basket
的对象来跟踪所有结果。这不一定是另一类。您可以简单地制作字典,集,列表或任何其他容器。
basket = set()
是一个非常简单的集合,可以容纳所有的成果。每次制作水果时,您都可以自动将其名称添加到购物篮中:
basket = set()
class Fruit(object):
def __init__(self, name):
self.name = name
# This is all that is needed!
basket.add(name)
测试此代码:
# Making some fruits
for name in ["Apple", "Orange", "Banana"]:
Fruit(name)
# Checking the basket
print(basket)
输出如下:
{'Banana', 'Apple', 'Orange'}
现在,如果要为basket
对象添加更多功能,可以按如下方式进入类:
class Basket(object):
def __init__(self, fruits=None):
self.fruits = fruits or set()
def put(self, fruit):
"""Add a fruit to this basket."""
self.fruits.add(fruit)
def show(self):
"""Display all the fruits in this basket."""
for fruit in self.fruits:
print(fruit.name)
class Fruit(object):
def __init__(self, name, basket=None):
self.name = name
# Adding it to the basket if needed.
if basket is not None:
basket.put(self)
# Making two baskets
gift = Basket()
picnic = Basket()
# Making some fruits and adding them to both baskets
apple = Fruit("Apple", basket=gift)
orange = Fruit("Orange", basket=picnic)
banana = Fruit("Banana", basket=gift)
print("In your gift basket you have:")
gift.show()
print("In your picnic basket you have:")
picnic.show()
这是输出:
In your gift basket you have:
Banana
Apple
In your picnic basket you have:
Orange