Jak nadpisać metodę dla danego obiektu

0

Hej mam klasę i w tej klasie jest metoda DoSth. Chcialbym stworzyc obiekty tej klasy i dla jednego z obiektow nadpisac metode DoSth. Czy jest to mozlwie w Pythonie i jesli tak to czy mozna prosic o jakis przyklad jak mozna to zrobic? Przykladowy kod:

def doSthNew(self, a):
    print(a.x)
    
class myClass():
    def __init__(self)
        self.x = 2

   def doSth(self):
       print(self.x)

a = myClass()
b = myClass()

b.doSth = doSthNew()

b.doSthNew(a)  # tutaj chcialbym wyprintowac wartosc z obiektu a
0
katakrowa napisał(a):

A czy już widziałeś takie cuda jak poniżej?

https://www.google.com/search?q=python+override+method
https://www.google.com/search?q=python+override+method+example

tak widzialem a da sie to zrobic jakos inaczej bez dziedziczenia?

4

Można ale to nieładnie tak robić.

class Employee:
    def __init__(self, name, base_pay):
        self.name = name
        self.base_pay = base_pay

    def get_pay(s):
        print("get_pay OK")
        return s        
        
a = Employee
a.get_pay(1)
a.get_pay = lambda x: print("get_pay SECOND")
a.get_pay(1)

1 użytkowników online, w tym zalogowanych: 0, gości: 1