LINUX.ORG.RU

История изменений

Исправление soomrack, (текущая версия) :

class Foo:                                                                                                                                                                                          
    pass                                                                                                                                                                                            
                                                                                                                                                                                                    
                                                                                                                                                                                                    
def say(obj):                                                                                                                                                                                       
    obj.say()                                                                                                                                                                                       
                                                                                                                                                                                                    
                                                                                                                                                                                                    
foo = Foo()                                                                                                                                                                                         
print(type(foo))                                                                                                                                                                                    
foo.say = lambda s: print("Go love yourself")                                                                                                                                                       
print(type(foo))

одно и тоже.

Ты просто изменил данные относящиеся к переменной foo – список медотов проассоциированных с объектом, но ты не изменил ее тип.

Исходная версия soomrack, :

class Foo:                                                                                                                                                                                          
    pass                                                                                                                                                                                            
                                                                                                                                                                                                    
                                                                                                                                                                                                    
def say(obj):                                                                                                                                                                                       
    obj.say()                                                                                                                                                                                       
                                                                                                                                                                                                    
                                                                                                                                                                                                    
foo = Foo()                                                                                                                                                                                         
print(type(foo))                                                                                                                                                                                    
foo.say = lambda s: print("Go love yourself")                                                                                                                                                       
print(type(foo))

одно и тоже.

Ты просто изменил данные относящиеся к переменной foo – список медотов проассоциированных с объектом, но ты не изменил ее тип.