Одним из решений этой проблемы является использование наследования и просто изменение логики c для MyClass
внутри нового класса.
С учетом следующего содержимого a.py
:
class MyClass:
def __init__(self, x,y,z):
self.x = x
self.y = y
self.z = z
def get(self, somestring):
pipeline = [somestring]
return pipeline
Создание нового объекта MyClass
и вызов get("somestring")
вернет список, содержащий только эту строку. Однако мы не устанавливаем свойство внутри класса, поэтому оно доступно только внутри самого метода.
Создание нового файла, в данном случае b.py
, мы можем создать новый класс, наследуя от первый класс, и просто измените метод get
, чтобы получить логин c, который мы хотим.
from a import MyClass
class MyNewClass(MyClass):
def get(self, somestring):
self.pipeline = [somestring]
Внутри b.py
мы можем затем выполнить следующий тест:
old = MyClass(1,2,3)
print(old.x, old.y, old.z)
print(old.get("this is the input-string"))
new = MyNewClass(4,5,6)
print(new.x, new.y, new.z)
new.get("This is the second input-string")
print(new.pipeline)
Выход:
1 2 3
['this is the input-string']
4 5 6
['This is the second input-string']