wow*_*yoo 4 python methods attributes python-3.x
实例方法的文档让我很困惑,它将方法分为两种类型:一种是通过类的实例检索的,另一种是通过从类或实例检索方法来创建的。
根据描述,
当通过从类或实例中检索类方法对象来创建实例方法对象时,其
__self__属性是类本身,其__func__属性是类方法底层的函数对象。
更复杂的方法的属性 __self__是类。有人可以举个例子来说明这种情况吗?
当您这样读时,该声明可能听起来含糊不清。我会尝试打破它。
当通过从类或实例检索类方法对象来创建实例方法对象时...
class TestClass(object):
@classmethod
def test_method(cls):
return 1
Run Code Online (Sandbox Code Playgroud)
它的
__self__属性是类本身,它的__func__属性是类方法底层的函数对象。
所以如果我们有一个obj = TestClass()那么
obj.test_method.__self__ == TestClass.test_method.__self__
Run Code Online (Sandbox Code Playgroud)
和
obj.test_method.__func__ == TestClass.test_method.__func__
Run Code Online (Sandbox Code Playgroud)
该声明专门针对从类的类方法创建的实例方法。
我希望它更清楚。我在这里创建了一个片段供您使用。
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |