相关疑难解决方法(0)

函数,未绑定方法和绑定方法有什么区别?

我问这个问题是因为对这个答案的评论主题进行了讨论.我90%的方式来绕过它.

In [1]: class A(object):  # class named 'A'
   ...:     def f1(self): pass
   ...:
In [2]: a = A()  # an instance
Run Code Online (Sandbox Code Playgroud)

f1 存在三种不同的形式:

In [3]: a.f1  # a bound method
Out[3]: <bound method a.f1 of <__main__.A object at 0x039BE870>>
In [4]: A.f1  # an unbound method
Out[4]: <unbound method A.f1>
In [5]: a.__dict__['f1']  # doesn't exist
KeyError: 'f1'
In [6]: A.__dict__['f1']  # a function
Out[6]: <function __main__.f1>
Run Code Online (Sandbox Code Playgroud)

绑定方法,未绑定方法函数对象之间的区别是什么,所有这些都由f1描述?如何调用这三个对象?他们怎么能相互转化?关于这些东西的文档很难理解.

python oop methods function

57
推荐指数
2
解决办法
2万
查看次数

如何获取模块中定义但未导入的所有类?

我已经看到了以下问题,但它并没有让我想到我想要的地方:如何在Python中获取当前模块中所有类的列表?

特别是,我不想要导入的类,例如,如果我有以下模块:

from my.namespace import MyBaseClass
from somewhere.else import SomeOtherClass

class NewClass(MyBaseClass):
    pass

class AnotherClass(MyBaseClass):
    pass

class YetAnotherClass(MyBaseClass):
    pass
Run Code Online (Sandbox Code Playgroud)

如果我使用clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)链接问题中的接受答案建议,它将返回MyBaseClass并且SomeOtherClass除了本模块中定义的3之外.

我怎么才能得到NewClass,AnotherClass而且YetAnotherClass

python introspection python-2.7

42
推荐指数
4
解决办法
2万
查看次数

标签 统计

python ×2

function ×1

introspection ×1

methods ×1

oop ×1

python-2.7 ×1