【[Python] The get() method on Python dicts and its "default" arg】教程文章相关的互联网学习教程文章

在C中嵌入python,未定义的符号:PyExc_ImportError【代码】

我正在尝试为Audacious Media Player编写一个加载python模块的插件. python嵌入代码来自python-2.6源代码(embed / Demo).这用命令行编译, gcc -o demo demo.c -lpython2.6 -lm -L /usr/lib / python2.6 / config 我将-lpython2.6 -lm -L /usr/lib / python2.6 / config添加到CC args中. 它加载了一个导入pygtk和gtk模块的Python脚本,这很好用. 但是在我编译插件(共享库)之后发生以下错误(这不是特定于gtk,因为我发现,对于任何使用本...

python – Pygame;制作C扩展

我是python的新手,并且在python中创建了一些有用的工具和一些带有10个sprite的小游戏;基于性能,我认为我的下一个逻辑步骤是进行C扩展以提高pygame的性能. 我的第一个初始问题是在pygame中,我可以在C中创建一个主循环(或者我是否必须与SDL接口?).精灵,我可以制作严格处理精灵的C代码,并且只使用python进行游戏的脚本编写吗?解决方法:如果您对代码没有任何了解,我可以提出这些建议.由于您正确地关注性能,而不是尝试通过编写C模块来...

c – 使用boost.python包装模板函数【代码】

我正在尝试使用boost.python将以下c函数公开给python:template <typename genType> genType refract(genType const & I, genType const & N, typename genType::value_type const & eta);我得到的是这个:template<typename N>N reflect(N const & i, N const & n, typename N::value_type const & eta){return glm::N refract(i,n,eta);}BOOST_PYTHON_MODULE(foo) {def("reflect", reflect<float>);def("reflect", reflect<doubl...

传递给构造函数的Python函数引用变为c_void_p数据类型【代码】

总而言之,我试图将一个字典列表传递给一个容器类,意图是每个字典将用于实例化另一个类.问题是每个字典包含一个要分配给子类的函数对象引用,并且由于某种原因,在最内层子类被实例化之前,它从python函数对象变为c_void_p对象. 应用程序域是使用curses创建基于文本的UI小部件库. 这是容器要包含的’child’类:class DigitalReadout(Window):# Just a one-line borderless window displaying some data...def __init__(self, width, y...

使Python中的C对象可迭代【代码】

我在网上搜索过但没有成功.我将下面的示例代码包装到Python中(使用SWIG):class atomo { public:int i;atomo(int a) {i = a;}; };class funa { public:atomo *lista[3];funa() {lista[0] = new atomo(1);lista[1] = new atomo(2);lista[2] = new atomo(3);}; };但Python不能使用命令迭代或访问lista>>> test = myModule.funa() >>> test.lista[0]Traceback (most recent call last):File "<stdin>", line 1, in <module>File...

什么是Python的min / max的C#等价【代码】

什么是C#的以下Python的最小/最大代码的等价:pairs = [ (2,"dog"), (1, "cat"), (3, "dragon"), (1, "tiger") ]# Returns the PAIR (not the number) that minimizes on pair[0] min_pair = min(pairs, key=lambda pair:pair[0])# this will return (1, 'cat'), NOT 1似乎C#的Enumerable.Min非常接近.但是根据its MSDN doc,它总是返回最小值VALUE(不是原始对象).我错过了什么吗? 编辑 请注意 – 由于排序(O(nlogn))在计算上比找到...

从书中学习PyQt. Python的C风格代码太多了?【代码】

Summerfield的“使用Python和Qt进行快速GUI编程”.我一般都喜欢这本书.前几章是我在网上或其他地方找到的最好的Python入门,这些例子多种多样且有用(虽然不完美,但有一些填充和回溯肯定 – 它可能更直接). 我的问题是,我觉得我可能会从中汲取不良习惯.作者不是仅仅动态地为现有对象分配新属性,而是使用“setData”函数,特殊的MIMEData插槽和诸如此类的东西.这是我在Stackoverflow上提出的第一个问题之一的一个很好的例子: Setting ...

序列化c,在python中反序列化?【代码】

我在C中有一个应用程序,它使用像这样的Google Protobuf序列化结构int len = mdd.ByteSize(); char* buf = (char *)malloc(len); mdd.SerializeToArray(buf, len);我想从python中反序列化:import marketdata_pb2 ... md = marketdata_pb2.MarketDataDepth() #what goes here? I don't see a marketdata_pb2.parsefromarray()解决方法:您正在寻找md.ParseFromString(some_string_of_bytes).在Python 2.x中,“一些字节串”是一个str...

python – 在C API中通过字符串重复创建对象【代码】

我正在研究一个嵌入Python解释器的系统,我需要从C API给出一个字符串来构造一个PyObject *. 我有一个const char *代表一个字典,以适当的格式让eval()在Python中正常工作,即:“{‘bar’:42,’baz’:50}”. 目前,这是使用Py_Unicode_ api(表示字符串)作为PyObject *传递给Python的,所以在我的python解释器中,我可以成功编写:foo = eval(myObject.value) print(foo['bar']) # prints 42我想将其更改为自动“eval”C侧的const char...

C列表到Python列表【代码】

我正在为现有的C库编写一个包装器,它利用了列表,其中T是一个自定义结构.我被建议使用vector而不是list,但我试图避免修改库. 为了更好地理解场景,我做了一个简单的应用程序,使用列表作为注册to-python转换的代理(可以只读). 我当前的实现编译很好,python导入很好,可以创建对象,但是当我调用数据成员时,它会出错. python shell输出:In [1]: import my_listIn [2]: x = my_list.Bob()In [3]: x.foos -------------------------------...

c – 嵌入python的应用程序的PTVS插件【代码】

对于“嵌入”python的应用程序,PTVS插件可以用于混合模式调试吗?更具体地说,让我们假设有一个名为“my_executable”的可执行文件(用C/C++编写)可以从命令行运行,并带有执行python脚本文件的选项:./my_executable -exec_script some_script_file.py在这种情况下,是否可以使用PTVS插件来实现混合模式调试? 谢谢.解决方法:是的,如果您通过Debug附加到流程,则支持此功能 – >附加到Process,同时启用Python和Native引擎.

如何从Python / C创建lambda【代码】

我们正在研究一些Python / C-API代码,我们遇到了一个希望传递回调的方法.该方法将作为反馈的形式定期更新回调.事实证明,我们对定期反馈并不感兴趣.禁用方法的默认反馈机制的唯一方法是传递某种回调. 我们采用的技术是声明一个只返回None的模块级函数,即:static PyObject* donothing(PyObject* self, PyObject* args) {return Py_None;}但是当然,这个函数也需要在模块方法表中注册,即:static PyMethodDef methods[] = {{"donothin...

python – 神秘的线“1; 3409; 0c”来自哪里【代码】

我在我的代码中发现了一条我从未写过的代码:#!/usr/bin/python #1;3409;0cfrom math import exp我想你可以自己发现它. 所以我用谷歌搜索它,似乎没有人谈论它,但是,它在某些地方自行弹出: > http://home.gwu.edu/~maxal/pubs.html> http://lists.freedesktop.org/archives/systemd-devel/2014-November/024896.html> https://github.com/alxlit/autoclave/pull/9/files?diff=split 有人知道它来自哪里吗?解决方法:根据Why is vim...

我有一个带有C 11代码的CPython C模块,但我似乎无法在travis-ci上构建【代码】

这个项目在我当地的Ubuntu 12.04和Mac OSX 10.10(带有fink python)机器上运行良好.我似乎无法弄清楚如何配置.travis.yml以使用g -4.8(4.9或5.x)来构建.cpp文件也没关系. 项目:https://github.com/schwehr/libais 我最近的失败尝试:language: pythonpython:- "2.7"- "3.4"before_install:- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test- sudo apt-get update -qq- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" ...

python – 通过C继承自定义PyObject【代码】

长期python程序员,第一次C扩展作家.无论如何,为了好玩,我正在尝试在C中为python创建链表模块.这是我的代码#include <python2.7/Python.h> #include <iostream>using namespace std;template <typename T> class LinkedList : public PyObject { private:struct ListNode {ListNode(T value, ListNode* next): value(value), next(next) {}T value;ListNode* next;};ListNode* head;public:LinkedList(T value): head(new ListNode(...