Python 设置函数的默认值
我创建了一个函数,用于解析子任务问题的JSON文件。根据票证数量,此函数有时返回1行,有时返回更多行,有时不返回任何内容Python 设置函数的默认值,python,Python,我创建了一个函数,用于解析子任务问题的JSON文件。根据票证数量,此函数有时返回1行,有时返回更多行,有时不返回任何内容 def subtask(): for issue in data['issues']: for subtask in issue['fields']['subtasks']: if subtask['fields']['summary'] != 'Workspace created': x = subtask['fi
def subtask():
for issue in data['issues']:
for subtask in issue['fields']['subtasks']:
if subtask['fields']['summary'] != 'Workspace created':
x = subtask['fields']['summary']
return x
接下来,我将这个变量的输出传递给if
block:它只检查函数输出是否包含“Workspace created”以外的单词
当subtasks()
函数返回任何值时,它会按预期工作,但如果函数没有输出,则会失败:
UnboundLocalError: local variable 'x' referenced before assignment
如果没有输出,如何为函数指定默认值?
例如,x=”“
我试过:
def subtask(x=None):
for issue in data['issues']:
for subtask in issue['fields']['subtasks']:
if subtask['fields']['summary'] != 'Workspace created':
x = subtask['fields']['summary']
if x is None:
x = "test"
return x
但是它会为有或没有摘要字段的票证返回“test”。问题是,如果条件
if子任务['fields']['summary']!='创建的工作区“:
永远不会变为真,然后x
未初始化,因此分配前引用的局部变量“x”的错误
第二个代码的问题与此类似,如果“第一个if-condition”为非真,则“第二个if-condition”没有x
要解决这个问题,只需在进入循环之前设置x=None
def subtask():
x = None # set default value of x here
for issue in data['issues']:
for subtask in issue['fields']['subtasks']:
if subtask['fields']['summary'] != 'Workspace created':
x = subtask['fields']['summary']
return x
i简化代码(删除函数)
您的
子任务
函数和子任务
循环变量正在分类您正在为..中的子任务循环,这意味着几个子任务?这意味着你的x会不断被改变。我想在某些情况下,它会得到一个None
。如果只需要第一个子任务,只需执行返回子任务['fields']['summary']
,而不是分配x。是的,有几个子任务,我要比较!=根据多个子任务名称子任务['fields']['summary']创建的工作区
。是的,有时它一个子任务也得不到
def subtask():
x = None # set default value of x here
for issue in data['issues']:
for subtask in issue['fields']['subtasks']:
if subtask['fields']['summary'] != 'Workspace created':
x = subtask['fields']['summary']
return x
data = response.json()
for issue in data['issues']:
for subtask in issue['fields']['subtasks']:
s = subtask['fields']['summary']
if len(issue['fields']['subtasks']) == 0 or subtask['fields']['summary'] != "Workspace created":
print issue['fields']['description']
print issue['key']