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 + -
显示快捷键?