是否可以像这样在Python中声明一个变量?:
var
使它初始化为None?Python似乎允许这样做,但一旦你访问它,它就崩溃了。这可能吗?如果不是,为什么?
编辑:我想这样做的情况下:
value
for index in sequence:
if value == None and conditionMet:
value = index
break
相关问题
为什么函数可以修改调用者感知到的一些参数,而不能修改其他参数?
Python变量声明
另请参阅
Python名称和值
其他语言有“变量”
首先,我对你最初提出的问题的回答
问:我如何发现一个变量是否在我的代码中定义了?
答:在源文件中阅读,直到看到定义该变量的行。
而且,您已经给出了一个代码示例,其中有各种相当python化的排列。你正在寻找一种方法来扫描序列中匹配条件的元素,所以这里有一些解决方案:
def findFirstMatch(sequence):
for value in sequence:
if matchCondition(value):
return value
raise LookupError("Could not find match in sequence")
显然,在这个例子中,你可以根据你想要实现的目标,将提升值替换为返回值None。
如果你想要所有符合条件的东西,你可以这样做:
def findAllMatches(sequence):
matches = []
for value in sequence:
if matchCondition(value):
matches.append(value)
return matches
还有另一种计算收益率的方法我就不给你们看了,因为它的工作方式很复杂。
此外,还有一种实现这一目标的方法:
all_matches = [value for value in sequence if matchCondition(value)]
首先,我对你最初提出的问题的回答
问:我如何发现一个变量是否在我的代码中定义了?
答:在源文件中阅读,直到看到定义该变量的行。
而且,您已经给出了一个代码示例,其中有各种相当python化的排列。你正在寻找一种方法来扫描序列中匹配条件的元素,所以这里有一些解决方案:
def findFirstMatch(sequence):
for value in sequence:
if matchCondition(value):
return value
raise LookupError("Could not find match in sequence")
显然,在这个例子中,你可以根据你想要实现的目标,将提升值替换为返回值None。
如果你想要所有符合条件的东西,你可以这样做:
def findAllMatches(sequence):
matches = []
for value in sequence:
if matchCondition(value):
matches.append(value)
return matches
还有另一种计算收益率的方法我就不给你们看了,因为它的工作方式很复杂。
此外,还有一种实现这一目标的方法:
all_matches = [value for value in sequence if matchCondition(value)]