对象是否具有其类方法的副本?

问题描述 投票:0回答:2

我想知道一个对象是否具有其所有类方法的副本。因此,我创建了一个类person,定义了一个方法getName,并创建了一个对象Harry。我使用了dir函数来检查类和对象是否都存储有getName方法,并且它们都返回true。然后,我打印出类和对象的getName方法,它们返回了不同的地址,但是我注意到harry.getName方法与person.getName绑定。这是否意味着harry.getName不是其类方法的副本,而是对其类方法的引用。要进行检查,请使用delattr方法删除人员类别的getName属性,然后再次使用dir进行检查。并按预期将其从类person和对象Harry中删除。

所以请检查我的代码并告诉我想法是否正确。

注意:

dir()函数返回指定对象的所有属性和方法,不包含值。

delattr()方法用于在对象的事先许可下从对象中删除命名属性。

Python Code

python class object methods instance
2个回答
2
投票

[无需过多讨论detail,您正在观察的是即时创建一个功能类似于person.getName的函数,但第一个参数(self)已绑定到实例。


0
投票

我的结论是:

© www.soinside.com 2019 - 2024. All rights reserved.