所以,在我的代码挑战进行的前一天,我很难将自己的头缠绕在python和对象关系周围。我真的希望那个神奇的时刻只需单击。在我们的练习挑战中,我完全以为我吹了它,但是当我们越过它时,我的大脑刚刚点击了一些东西,突然我得到了它!
所以,我有这一刻一切都很有意义,但是老实说,我仍然在为这个问题而苦苦挣扎。但是,我想写的不仅会对我有所帮助,而且也许其他人也经历了同样的事情。生活可能是个疯狂的旅程,对吗?
让我们更深入地研究这个主题!
当然,我们知道我们舒适的朋友the for loop
,当您第一次学习Python时,这是安全,更容易理解的!
例子:
the_list = []
for concert in Concert.all:
if concert.venue == self:
the_list.append( concert )
return the_list
代码分解:
the_list = []
:这将创建一个称为the_list
的空列表,该列表将用于存储与场地相关的音乐会。
for concert in Concert.all
:Concert.all
是一个拥有所有可用音乐会的列表(或令人叹为观止的)。循环在此列表中的每场音乐会中迭代。
if concert.venue == self
:此行检查当前音乐会的场地是否与给定的self
匹配,其中self
在方法或类的上下文中指的是场地对象。
the_list.append(concert)
:如果场地匹配,音乐会将附加到the_list
。
循环完成后,功能返回the_list
,其中包含与给定场所相关的所有音乐会。
是的,用于循环!
那么,您听说过清单综合吗?实际上,它们是Python中非常方便的工具,可以使您的代码在使用列表时更有效。
基本上,您可以使用它们来创建一个新列表,通过将表达式应用于现有列表(或其他迭代)中的每个项目。这使您的代码较短,更易于阅读 - 非常酷,对
例子:
return [c for c in Concert.all if c.venue == self]
代码分解:
return
:这表明该函数将返回列表。
c for c in Concert.all:
这是列表理解语法。第一个c
代表了整个音乐会实例,该实例将列入您的新列表。第二个c
通过Concert.all
中的每个c
(音乐会)迭代,其中包含所有可用的音乐会。
if c.venue == self
:列表理解仅在结果中包括c
,仅当c
(音乐会)的场地属性与self
的值匹配时。
self
is在方法或类的上下文中指的是场地对象,代表当前场地。
我必须向我的老师亚当大喊大叫,因为它帮助我拥有“ a-ha”时刻,因为这种崩溃确实有助于我理解!
记住:
当冒名顶替综合症碰到时,请回想一下您走了多远!
您知道一周前知道的吗?
您可以做到这一点!对自己好!
快乐编码!