Roe*_*ler 1 python parameters reference
我有一个函数有几个输出,所有输出都是"本机",即整数和字符串.例如,假设我有一个分析字符串的函数,并找到单词的数量和单词的平均长度.
在C/C++中,我会使用@将2个参数传递给函数.在Python中我不确定什么是正确的解决方案,因为整数和字符串不是通过引用传递而是通过值传递(至少这是我从试错中理解的),因此以下代码将不起作用:
def analyze(string, number_of_words, average_length):
... do some analysis ...
number_of_words = ...
average_length = ...
Run Code Online (Sandbox Code Playgroud)
如果我执行上述操作,则函数范围之外的值不会更改.我目前所做的是使用这样的字典:
def analyze(string, result):
... do some analysis ...
result['number_of_words'] = ...
result['average_length'] = ...
Run Code Online (Sandbox Code Playgroud)
我使用这样的功能:
s = "hello goodbye"
result = {}
analyze(s, result)
Run Code Online (Sandbox Code Playgroud)
但是,这感觉不对.什么是正确的Python方法来实现这一目标?请注意我只是指函数返回2-3个结果而不是数十个结果的情况.另外,我是Python的新手,所以我知道我可能会遗漏一些微不足道的东西......
谢谢
Sil*_*ost 17
python有一个return声明,允许您执行以下操作:
def func(input):
# do calculation on input
return result
s = "hello goodbye"
res = func(s) # res now a result dictionary
Run Code Online (Sandbox Code Playgroud)
但你根本不需要result,你可以返回一些值,如下所示:
def func(input):
# do work
return length, something_else # one might be an integer another string, etc.
s = "hello goodbye"
length, something = func(s)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4976 次 |
| 最近记录: |