九州体育网 - 十年信誉网站

关于作者

Discuss / Python / ??????

??????

Topic source

Linddddddaaaaa

#1 Created at ...

为什么绑定类的方法到实例时需要使用methodtype语句 在绑定类的方法到class时只需要使用Student.set_score=set_score这个赋值语句?

火火陆柒

#2 Created at ...

使用赋值语句和MethodType均可以绑定方法。 但是使用MethodType绑定方法,调用方法时会将被绑定对象作为参数自动传入方法。 使用赋值语句绑定方法,不会自动传参。但是值得注意的是,如果是类绑定方法,那么他自身使用该方法时不会自动传参,但是他的对象也拥有该方法,而且使用时会自动传参。

Gin阿金

#3 Created at ...

是否会自动传参的作用是什么呢?

火火陆柒

#4 Created at ...

之前好像我还没完全搞懂。 使用MethodType函数给类绑定方法,则该方法是属于类的一个方法,调用时会自动将类作为方法的self参数自动传入。就算是该类的对象调用该方法时,也会自动传入该类作为self参数。具体作用就是如果该方法中定义了一个属性,则该属性是类的属性,只有一个,对象对属性做修改则该属性只有最近一次修改的唯一的值。 若是赋值语句给类绑定方法,则该方法不是类的方法,因此被类调用时不会自动传参。生成实例后变成实例的方法,自动传入实例对象。若该方法对属性赋值,则该属性属于实例对象,存在多个重名不重值属性。


  • 1

Reply

WARNING: You are using an old browser that does not support HTML5. Please choose a modern browser (Chrome / Microsoft Edge / Firefox / Sarafi) to get a good experience.