将元组的一个元素作为参数与其他参数一起传递
Pass one element of tuple as argument along with other arguments
我有一个库函数 return 是一个 tuple
看起来像这样
def some_function(some_string):
does something
return (text,id)
现在我想将来自 some_function 的文本 return 作为参数传递给另一个函数。问题是该函数还有其他参数,我不想将整个元组作为指针传递。我还需要检索许多由 some_string.
的不同值生成的文本
根据满足的条件,我想调用另一个看起来像这样的函数
if abcd:
other_function(name,phone,**some_function("abcd")**,age)
elif xyz:
other_function(name,phone,**some_function("xyz")**,age)
else:
other_function(name,phone,**some_function("aaaa")**,age)
那么我应该用什么替换 some_function("abcd") 以便它只发送文本而不是文本和 id 作为参数?
other_function是这样定义的
def other_function(name,phone,text,age):
...
return
我自己想出的一个解决方案是创建另一个 return 只是文本的函数。
def returntextonly(some_string):
self.some_string = some_string
(text,id) = some_function(some_string)
return text
然后像
一样调用other_function
if abcd:
other_function(name,phone,returntextonly("abcd"),age)
我主要使用 C++ 编程,最近才开始学习 python。我想知道是否有比为 return 元组的一个元素创建新函数更好的解决方案。
感谢阅读。
您可以运行这样:
other_function(name, phone, some_function("abcd")[0], age)
无需定义额外的 if
语句、包装函数等,因为您只想传递从原始函数返回的元组的第一个元素。
对于一般情况,这变成:
other_function(name, phone, some_function(some_string)[0], age)
请注意,元组是另一个(不可变的)迭代器,它的元素可以像在列表中一样使用常规索引访问。
我有一个库函数 return 是一个 tuple
看起来像这样
def some_function(some_string):
does something
return (text,id)
现在我想将来自 some_function 的文本 return 作为参数传递给另一个函数。问题是该函数还有其他参数,我不想将整个元组作为指针传递。我还需要检索许多由 some_string.
的不同值生成的文本根据满足的条件,我想调用另一个看起来像这样的函数
if abcd:
other_function(name,phone,**some_function("abcd")**,age)
elif xyz:
other_function(name,phone,**some_function("xyz")**,age)
else:
other_function(name,phone,**some_function("aaaa")**,age)
那么我应该用什么替换 some_function("abcd") 以便它只发送文本而不是文本和 id 作为参数?
other_function是这样定义的
def other_function(name,phone,text,age):
...
return
我自己想出的一个解决方案是创建另一个 return 只是文本的函数。
def returntextonly(some_string):
self.some_string = some_string
(text,id) = some_function(some_string)
return text
然后像
一样调用other_function if abcd:
other_function(name,phone,returntextonly("abcd"),age)
我主要使用 C++ 编程,最近才开始学习 python。我想知道是否有比为 return 元组的一个元素创建新函数更好的解决方案。
感谢阅读。
您可以运行这样:
other_function(name, phone, some_function("abcd")[0], age)
无需定义额外的 if
语句、包装函数等,因为您只想传递从原始函数返回的元组的第一个元素。
对于一般情况,这变成:
other_function(name, phone, some_function(some_string)[0], age)
请注意,元组是另一个(不可变的)迭代器,它的元素可以像在列表中一样使用常规索引访问。