假设我bar在一个名为的模块中有一个函数foo.py.在foo.py中的某个地方,我希望能够从字符串"bar"调用bar().我怎么做?
# filename: foo.py
import sys
def bar():
print 'Hello, called bar()!'
if __name__ == '__main__':
funcname = 'bar'
# Here I should be able to call bar() from funcname
Run Code Online (Sandbox Code Playgroud)
我知道python中存在一些名为'getattr'的内置函数.但是,它需要'模块对象'作为第一个参数.如何获取当前模块的"模块对象"?
我只是想知道编写python docstrings(__doc__)的两种方式有什么区别:
三个单引号:
'''
Comment goes here
'''
Run Code Online (Sandbox Code Playgroud)三个双引号:
"""
Comment goes here
"""
Run Code Online (Sandbox Code Playgroud)在生成文档时,doc字符串可以在以后格式化的方式有什么细微的差别吗?
我有兴趣知道是否有任何开源项目(最好是用Python)可以用来下载(抓取?)Lucene/Hadoop等开源项目的邮件列表档案(例如http:// mail-archives) .apache.org/mod_mbox/lucene-java-user /).我特地寻找为(Apache)邮件列表存档(不是像Scrappy这样的通用爬虫)定制的爬虫/下载器.任何指针都非常感谢.谢谢.
在Python中,可以foo()使用内置函数将函数应用于列表的每个元素,map()如下所示:
def foo(x):
return x*x
print map(foo, [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
这将打印出人们可以猜到的:1 4 9 16.
让我们说该函数foo()现在接受两个参数而不是一个,并定义如下:
def foo(x, y):
return x+y
Run Code Online (Sandbox Code Playgroud)
在这种情况下,x是列表的元素,y是某个数字,对于整个列表是相同的.在这种情况下我们如何使用map(),以便foo()应用于列表的每个元素,同时采用另一个参数y对每个元素都相同?
我希望能够做到这样的事情:
print map(foo(:, 5), [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
应该给我:6 7 8 9.
在Python中有可能吗?对于添加'y'到所有元素的这个特定示例,可以有替代方案.但我正在寻找一个可以使用的答案map().