本文整理匯總了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