test_new.py

来自「minimal python variant for small footpri」· Python 代码 · 共 64 行

PY
64
字号
from test_support import verboseimport sysimport newclass Eggs:    def get_yolks(self):        return self.yolksprint 'new.module()'m = new.module('Spam')if verbose:    print mm.Eggs = Eggssys.modules['Spam'] = mimport Spamdef get_more_yolks(self):    return self.yolks + 3print 'new.classobj()'C = new.classobj('Spam', (Spam.Eggs,), {'get_more_yolks': get_more_yolks})if verbose:    print Cprint 'new.instance()'c = new.instance(C, {'yolks': 3})if verbose:    print cdef break_yolks(self):    self.yolks = self.yolks - 2print 'new.instancemethod()'im = new.instancemethod(break_yolks, c, C)if verbose:    print imif c.get_yolks() <> 3 and c.get_more_yolks() <> 6:    print 'Broken call of hand-crafted class instance'im()if c.get_yolks() <> 1 and c.get_more_yolks() <> 4:    print 'Broken call of hand-crafted instance method'codestr = '''a = 1b = 2c = a + b'''ccode = compile(codestr, '<string>', 'exec')g = {'c': 0, '__builtins__': __builtins__}# this test could be more robustprint 'new.function()'func = new.function(ccode, g)if verbose:    print funcfunc()if g['c'] <> 3:    print 'Could not create a proper function object'# bogus test of new.code()print 'new.code()'d = new.code(3, 3, 3, 3, codestr, (), (), (), "<string>", "<name>", 1, "")if verbose:    print d

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?