本文整理汇总了Python中code.co_consts方法的典型用法代码示例。如果您正苦于以下问题:Python code.co_consts方法的具体用法?Python code.co_consts怎么用?Python code.co_consts使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类code
的用法示例。
在下文中一共展示了code.co_consts方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: register
# 需要导入模块: import code [as 别名]
# 或者: from code import co_consts [as 别名]
def register(self, code, source):
self._storage[id(code)] = source
# register code objects of wrapped functions too.
for var in code.co_consts:
if isinstance(var, CodeType):
self._storage[id(var)] = source
示例2: get_generic_cmd
# 需要导入模块: import code [as 别名]
# 或者: from code import co_consts [as 别名]
def get_generic_cmd(obj, ui, cliclass=GenericCLI, aliases=None, gbl=None):
"""get a GenericCLI (or other) command set wrapping any class instance
object. The wrapped objects public methods have CLI command counterparts
automatically created."""
import new
from methodholder import MethodHolder
cmd = cliclass(ui, aliases)
if gbl is None:
gbl = globals()
hashfilter = {}
for name in _get_methodnames(obj):
if hasattr(cmd, name):
continue # don't override already defined methods
# all this mess does is introspect the object methods and map it to a CLI
# object method of the same name, with a docstring showing the attributes
# and their default values, and the actual code mirroring the
# _generic_call method in the GenericCLI class.
else:
obj_meth = getattr(obj, name)
if id(obj_meth.im_func) in hashfilter: # filter out aliases
continue
else:
hashfilter[id(obj_meth.im_func)] = True
mh = MethodHolder(obj_meth)
doc = "%s *\n%s" % (mh, obj_meth.__doc__ or "")
code = cliclass._generic_call.func_code
nc = new.code(code.co_argcount, code.co_nlocals, code.co_stacksize,
code.co_flags, code.co_code,
(doc,)+code.co_consts[1:], # replace docstring
code.co_names, code.co_varnames, code.co_filename,
code.co_name, code.co_firstlineno, code.co_lnotab)
f = new.function(nc, gbl, name)
m = new.instancemethod(f, cmd, cliclass)
setattr(cmd, name, m)
cmd._setup(obj, "Object:%s> " % (obj.__class__.__name__,))
return cmd
示例3: get_generic_cmd
# 需要导入模块: import code [as 别名]
# 或者: from code import co_consts [as 别名]
def get_generic_cmd(obj, ui, cliclass=GenericCLI, aliases=None, gbl=None):
"""get a GenericCLI (or other) command set wrapping any class instance
object. The wrapped objects public methods have CLI command counterparts
automatically created."""
import new
from pycopia.methodholder import MethodHolder
cmd = cliclass(ui, aliases)
if gbl is None:
gbl = globals()
hashfilter = {}
for name in _get_methodnames(obj):
if hasattr(cmd, name):
continue # don't override already defined methods
# all this mess does is introspect the object methods and map it to a CLI
# object method of the same name, with a docstring showing the attributes
# and their default values, and the actual code mirroring the
# _generic_call method in the GenericCLI class.
else:
obj_meth = getattr(obj, name)
if id(obj_meth.__func__) in hashfilter: # filter out aliases
continue
else:
hashfilter[id(obj_meth.__func__)] = True
mh = MethodHolder(obj_meth)
doc = "%s *\n%s" % (mh, obj_meth.__doc__ or "")
code = cliclass._generic_call.func_code
nc = new.code(code.co_argcount, code.co_nlocals, code.co_stacksize,
code.co_flags, code.co_code,
(doc,)+code.co_consts[1:], # replace docstring
code.co_names, code.co_varnames, code.co_filename,
code.co_name, code.co_firstlineno, code.co_lnotab)
f = new.function(nc, gbl, name)
m = new.instancemethod(f, cmd, cliclass)
setattr(cmd, name, m)
cmd._setup(obj, "Object:%s> " % (obj.__class__.__name__,))
return cmd