python获取函数结果 python获取函数参数

Python 函数 - 返回生成器

如果函数要返回一系列结果,我们常见的方法就是将结果放到一份列表中,然后返回给调用者。比如下面的函数,返回字符串中每个单词的首字母在真个字符串中的索引:

创新互联建站是一家集网站建设,武夷山企业网站建设,武夷山品牌网站建设,网站定制,武夷山网站建设报价,网络营销,网络优化,武夷山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

运行结果:

上述的结果完全符合我们的预期,但 get_word_index 函数不够简洁。下面我们尝试使用生成器来实现:

运行结果:

改写之后,不仅运行结果符合要求,由于不需要和 result 列表交互,函数也变得非常简洁。下面我们就来详细学习下生成器吧~

生成器是指使用 yield 表达式的函数,调用生成器函数时,它并不会真的运行,而是会返回迭代器。每次在这个迭代器上面调用内置的 next 函数时,迭代器就会把生成器推进到下一个 yield 表达式那里。生成器传给 yield 的值均会由迭代器返回给调用者。

此外,如果输入量非常大,使用列表作为返回值,那么程序就有可能耗尽内存并崩溃。相反,使用生成器之后,则可以应对任意长度的输入数据。

例如,下面这个生成器函数可以获取文件中单词的索引,而不管文件内容多大,该函数执行时消耗的内存,只由单行的文本长度决定:

其中 test_generator.txt 中的内容如下:

运行结果:

下面这句话特别重要: 生成器函数返回的迭代器,是由状态的,及调用者不应该反复使用它 。我们那 word_index_iter 来说明:

如果想重复调用,请将其封装成容器:

运行结果:

关于上述自定义容器的实现原理,我的另外一篇文章做了详细介绍,链接奉上:

Python获取函数参数个数和默认参数

创建一个函数用来计算三个数的和,如下:

下来,我们对其进行调用:

假设我们要计算这个函数返回结果的平均值。那么此时,我们只需将和值除以参数个数即可,那么参数个数怎么获取呢?你可能会说:数一下就知道了。那么假设此时有很多的参数,你还去数吗?此时,明显这个方法是不恰当的,那么有没有更加方便、高效的方法呢?我们接着往下看。

通过上面这个例子,我们不但可以获取参数个数,还可以获取所有变量名以及默认返回值。此时,我们只需根据自己的需求,去应用就可以了,那么以上的问题,就自然解决了。

python执行多进程时,如何获取函数返回的值

共享变量的方法。

没有办法直接实现你的需求,但是,你可以用共享变量的方法实现,比如:

def worker(procnum, return_dict):

'''worker function'''

print str(procnum) + ' represent!'

return_dict[procnum] = procnumif __name__ == '__main__':

manager = Manager()

return_dict = manager.dict()

jobs = []    for i in range(5):

p = multiprocessing.Process(target=worker, args=(i,return_dict))

jobs.append(p)

p.start()    for proc in jobs:

proc.join()    print return_dict.values()


网站标题:python获取函数结果 python获取函数参数
文章路径:http://scyanting.com/article/hpdpeh.html