在本文中,我们将详细介绍如何扩展python模块?在python-twitter包中添加新功能的各个方面,并为您提供关于twitterpython的相关解答,同时,我们也将为您带来关于ffpython
在本文中,我们将详细介绍如何扩展python模块?在python-twitter包中添加新功能的各个方面,并为您提供关于twitter python的相关解答,同时,我们也将为您带来关于ffpython —— C++ 嵌入、扩展Python的开发库、IPython notebook:如何重新加载特定Python文件中的所有模块?、Jenkins:将我的Python模块放在PYTHONPATH上、K210扩展python模块到固件的有用知识。
本文目录一览:- 如何扩展python模块?在python-twitter包中添加新功能(twitter python)
- ffpython —— C++ 嵌入、扩展Python的开发库
- IPython notebook:如何重新加载特定Python文件中的所有模块?
- Jenkins:将我的Python模块放在PYTHONPATH上
- K210扩展python模块到固件
如何扩展python模块?在python-twitter包中添加新功能(twitter python)
扩展现有Python模块的最佳实践是什么–在这种情况下,我想python-twitter
通过向基础API类添加新方法来扩展该包。
我看了看tweepy
,我也很喜欢。我只是发现python-twitter
更容易理解和扩展所需的功能。
我已经编写了方法-我试图找出在python-twitter
不更改此模块核心的情况下将其添加到package模块中的最Pythonic且破坏性最小的方法。
答案1
小编典典几种方法。
简单的方法:
不要扩展模块,扩展类。
exttwitter.py
import twitterclass Api(twitter.Api): pass # override/add any functions here.
缺点:twitter中的每个类都必须位于exttwitter.py中,即使它只是一个存根(如上所述)
一种更困难的(可能是非Python的)方式:
将*从python-twitter导入一个模块,然后进行扩展。
例如 :
basemodule.py
class Ball(): def __init__(self,a): self.a=a def __repr__(self): return "Ball(%s)" % self.adef makeBall(a): return Ball(a)def override(): print "OVERRIDE ONE"def dontoverride(): print "THIS WILL BE PRESERVED"
extmodule.py
from basemodule import *import basemoduledef makeBalls(a,b): foo = makeBall(a) bar = makeBall(b) print foo,bardef override(): print "OVERRIDE TWO"def dontoverride(): basemodule.dontoverride() print "THIS WAS PRESERVED"
runscript.py
import extmodule#code is in extended moduleprint extmodule.makeBalls(1,2)#returns Ball(1) Ball(2)#code is in base moduleprint extmodule.makeBall(1)#returns Ball(1)#function from extended module overwrites base moduleextmodule.override()#returns OVERRIDE TWO#function from extended module calls base module firstextmodule.dontoverride()#returns THIS WILL BE PRESERVED\nTHIS WAS PRESERVED
我不确定extmodule.py中的double import是否是pythonic
-您可以将其删除,但是这样您就无法处理想要扩展basemodule命名空间中的函数的用例。
至于扩展类,只需创建一个新的API(basemodule.API)类即可扩展Twitter API模块。
ffpython —— C++ 嵌入、扩展Python的开发库
ffpython是专门方便C++嵌入python开发的类库,基于ffpython一方面可以轻松的将python集成到C++系统,另一方面,C++对象或接口也可以很容易被python使用,总之ffpython简化了c++与python的交互操作。
IPython notebook:如何重新加载特定Python文件中的所有模块?
目前我的工作流程是:
>修改myFile
>重启Ipython内核
>重新运行Ipython中的所有代码.
有谁知道是否有办法重新加载myFile中的所有模块而无需重启Ipython内核?谢谢!
解决方法
In [1]: %load_ext autoreload In [2]: %autoreload 2 In [3]: from foo import some_function In [4]: some_function() Out[4]: 42 In [5]: # open foo.py in an editor and change some_function to return 43 In [6]: some_function() Out[6]: 43
您还可以通过执行以下操作将自动重新加载配置为自动执行:
ipython个人资料创建
并将以下内容添加到〜/ .config / ipython / profile_default / ipython_config.py中
c.InteractiveShellApp.extensions = ['autoreload'] c.InteractiveShellApp.exec_lines = ['%autoreload 2'] c.InteractiveShellApp.exec_lines.append('print("Warning: disable autoreload in ipython_config.py to improve performance.")')
注意:如果重命名函数,则需要重新运行import语句
Jenkins:将我的Python模块放在PYTHONPATH上
我正在使用Jenkins测试nodepy
我开发的Python模块。但是,出现以下错误:
File "/var/lib/jenkins/jobs/NodePy/workspace/convergence.py",line 6,in workspace.convergence
Failed example:
from nodepy import rk,convergence,ivp
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.7/doctest.py",line 1289,in __run
compileflags,1) in test.globs
File "<doctest workspace.convergence[0]>",line 1,in <module>
from nodepy import rk,ivp
ImportError: No module named nodepy
如何在Jenkins中设置PYTHONPATH(以便我的模块可导入)?
我什至不确定应该添加哪个目录。似乎Jenkins将东西放在jenkins / jobs / nodepy / workspace
/中,因此该目录甚至没有正确的名称供python查找。
编辑:
python模块nodepy
是git
我配置了jenkins作业以查看和结帐的存储库。
K210扩展python模块到固件
直接将需要添加的python模块添加到:
MaixPy\components\micropython\port\builtin_py
今天关于如何扩展python模块?在python-twitter包中添加新功能和twitter python的讲解已经结束,谢谢您的阅读,如果想了解更多关于ffpython —— C++ 嵌入、扩展Python的开发库、IPython notebook:如何重新加载特定Python文件中的所有模块?、Jenkins:将我的Python模块放在PYTHONPATH上、K210扩展python模块到固件的相关知识,请在本站搜索。
本文标签: