在Python中是否支持syscall clone(2)(不是 os.fork)?我想在Python下使用Linux命名空间,但似乎没有很多关于它的信息.
编辑:
我认为使用libc的ctypes是答案,但我仍然没有取得任何成功.fork工作没有问题,因为它没有任何参数,然后此代码工作:
from ctypes import *
libc = CDLL("libc.so.6")
libc.fork()
Run Code Online (Sandbox Code Playgroud)
克隆我正在尝试这个:
from ctypes import *
def f():
print "In callback."
return 0
libc = CDLL("libc.so.6")
f_c = CFUNCTYPE(c_int)(f)
print libc.getpid()
print libc.clone(f_c)
print get_errno()
Run Code Online (Sandbox Code Playgroud)
克隆实际上有这个签名:
int clone(int(*fn)(void*),void*child_stack,int flags,void arg,... / pid_t*ptid,struct user_desc*tls,pid_t*ctid*/);
我仍然需要传递*child_stack和flags但不知道如何做到这一点.有帮助吗?
更多编辑:
我现在得到了这个:
from ctypes import *
def f():
print "In callback."
return 0
libc = CDLL("libc.so.6")
f_c = CFUNCTYPE(c_int)(f)
stack = c_char_p(" " * 1024 * 1024)
libc.clone(f_c, c_void_p(cast(stack, c_void_p).value + …Run Code Online (Sandbox Code Playgroud) 使用 CloudFormation,如何为 AWS Cognito 中的用户池创建资源服务器?
在 CloudFormation 文档中,Cognito 下只有 5 个项目,我看不到如何配置 ResourceServer,这甚至可能吗?
谢谢。
我在一些python库中看到了在对象中使用名为Meta的类定义的常见模式,如django Models或tastypie Resources.还有一些其他人不像Celery Tasks那样使用它.
这有什么明显的原因吗?从tastypie代码我可以看到一些元类正在使用内部的Meta类定义.元数据和模型的简单属性有什么区别吗?在django模型中有点容易说:属性只是像age = IntegerField这样的字段,但我可以在属性调用字段中思考,或者只使用_attrs或__attrs作为元数据.
这是一个好习惯吗?
再见.
编辑:
我想补充一点:
还有更多的图书馆以类似的方式接近这个吗?或者有不同的方法来做同样的事情?这里有什么常见的模式我可以检查吗?谢谢.
我想创建一个库,我喜欢这两种方式,并且与这两个库没有多大关系,因此选择其中一个库没有一致性问题
再见.
我在装饰器库中遇到了一个非常奇怪的行为,在下一个代码中对此进行了解释:
from decorator import decorator
@decorator
def wrap(f, a, *args, **kwargs):
print 'Decorator:', a, args, kwargs
return f(a, *args, **kwargs)
def mywrap(f):
def new_f(a, *args, **kwargs):
print 'Home made decorator:', a, args, kwargs
return f(a, *args, **kwargs)
return new_f
@wrap
def funcion(a, b, *args, **kwargs):
pass
@mywrap
def myfuncion(a, b, *args, **kwargs):
pass
funcion(1, b=2)
myfuncion(1, b=2)
Run Code Online (Sandbox Code Playgroud)
执行此脚本打印:
$ python /tmp/test.py
Decorator: 1 (2,) {}
Home made decorator: 1 () {'b': 2}
Run Code Online (Sandbox Code Playgroud)
'decorator'隐藏了args中的kwargs,如何在不使用"自制"装饰器的情况下解决这个问题.
谢谢.