pr192.py

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 82 行

PY
82
字号
# PR#192, dir(func) and dir(method) returning []def test1():    'Test function 1'    passdef test2(a, b=2, c=3):    passattrs = dir(test1)[:]for attr in ['__doc__', '__name__', 'func_code', 'func_defaults',             'func_doc', 'func_globals', 'func_name']:    attrs.remove(attr)assert not attrsassert test1.__doc__ == test1.func_doc == 'Test function 1'assert test1.__name__ == test1.func_name == 'test1'assert test1.func_codeassert test1.func_defaults is Noneassert test1.func_globals == globals()assert test2.func_defaults == (2, 3)co = test2.func_codeattrs = dir(co)[:]for attr in ['co_name', 'co_argcount', 'co_varnames', 'co_filename',             'co_firstlineno', 'co_flags']:    attrs.remove(attr)##assert not attrsflags = 0x4 | 0x8assert co.co_name == 'test2'assert co.co_argcount == 3assert co.co_varnames == ('a', 'b', 'c')assert co.co_filenameassert co.co_firstlinenoassert (co.co_flags & flags) == 0def test3(a, *args, **kw):    passassert (test3.func_code.co_flags & flags) == flagsclass Foo:    def method(self):        """This is a method"""        passattrs = dir(Foo.method)[:]for attr in ['im_self', 'im_func', 'im_class', '__doc__', '__name__']:    attrs.remove(attr)assert not attrsassert Foo.method.im_self is Noneassert Foo.method.im_class == Fooassert Foo.method.im_funcassert Foo.method.im_func.__name__ == Foo.method.__name__assert Foo.method.im_func.__doc__ == Foo.method.__doc__f = Foo()m = f.methodassert m.im_self == fassert m.im_class == Fooassert m.im_func == Foo.method.im_funcassert m.__name__ == Foo.method.__name__assert m.__doc__ == Foo.method.__doc__class Baz:    passtry:    m.im_class = Baz    assert 0except TypeError:    passtry:    m.im_stuff = 7    assert 0except AttributeError:    pass

⌨️ 快捷键说明

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