我需要制作一个套接字模块的副本才能使用它,并且需要另外一个套接字模块进行猴子修补并以不同的方式使用它.
这可能吗?
我的意思是真正复制一个模块,即在运行时获得相同的结果,就好像我已经复制socketmodule.c,将initsocket()函数更改为initmy_socket(),并将其作为my_socket扩展安装.
我正在努力学习Django.并且需要一些东西超越Hello world和Polls教程.你能否推荐任何用Django编写的真实项目?试图搜索,但发现并不多.特别感兴趣的是buildout的用法.
有没有人知道是否有任何工具可以将一个使用多个文件和模块的Python项目打包到一个脚本中?
我有以下 test.pyx
cdef public class Foo[object Foo, type FooType]:
cdef public char* foo(self):
r = "Foo"
return r
Run Code Online (Sandbox Code Playgroud)
cython 将该代码编译为 test.h 和 test.c,一切看起来都很好,但我不知道如何从 C 代码创建Foo对象。
即使我使用 Cython 函数创建它:
cdef public Foo create_Foo():
return Foo()
Run Code Online (Sandbox Code Playgroud)
我不知道如何调用foo方法。
谢谢。
有了下面的代码,我怎么能用'foo'函数使它在任何情况下都不被绑定,即使它被赋给了class属性?覆盖__get__没有帮助 - 据我所知,因为当实例的__dict__中没有函数时它不被使用(在类属性的情况下是这样).但是还有什么可以在这里完成的?
def foo(x):
print(x)
def foo_get(self, obj, type=None):
return foo
foo.__get__ = foo_get
class A(object):
def __init__(self):
self.f = foo
class B(object):
f = foo
a = A()
print(a.f) #<function foo at 0x2321d10>
print(a.f.__get__(a, A)) #<function foo at 0x2321d10>
b = B()
print(b.f) #<bound method B.foo of <__main__.B object at 0x23224d0>>
Run Code Online (Sandbox Code Playgroud)