GVKun编程网logo

如何扩展python模块?在python-twitter包中添加新功能(twitter python)

5

在本文中,我们将详细介绍如何扩展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)

如何扩展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是专门方便C++嵌入python开发的类库,基于ffpython一方面可以轻松的将python集成到C++系统,另一方面,C++对象或接口也可以很容易被python使用,总之ffpython简化了c++与python的交互操作。

IPython notebook:如何重新加载特定Python文件中的所有模块?

IPython notebook:如何重新加载特定Python文件中的所有模块?

我在一个文件中定义了很多模块,并从myFile import *添加到我的i python笔记本的第一行,这样我就可以将它用作这个笔记本中其他部分的依赖项.

目前我的工作流程是:

>修改myFile
>重启Ipython内核
>重新运行Ipython中的所有代码.

有谁知道是否有办法重新加载myFile中的所有模块而无需重启Ipython内核?谢谢!

解决方法

来自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:将我的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模块nodepygit我配置了jenkins作业以查看和结帐的存储库。

K210扩展python模块到固件

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模块到固件的相关知识,请在本站搜索。

本文标签: