Если вы хотите выучить OOP, тогда вы можете начать понимать концепцию наследования. Вот пример:
# generic class
class Custom:
def __init__(self,*args):
# collect all given parameters:
self.args = args
def rate_for_custom(self):
# just sum all numbers in given parameter:
return sum(self.args)
class Sea(Custom):
def __init__(self,supplier=0,delivery=0,insurance=0, port_tax = 0):
# Call Custom class and provide all relevant parameters:
super().__init__(supplier, delivery, insurance, port_tax)
class Air(Custom):
def __init__(self,supplier=0, delivery=0, insurance=0):
# Call Custom class and provide all relevant parameters:
super().__init__(supplier, delivery, insurance )
print(Custom(100,50,25).rate_for_custom())
# 175
print(Air(supplier=100,delivery=50,insurance=25).rate_for_custom())
# 175
print(Sea(supplier=100,delivery=50,insurance=25,port_tax=25).rate_for_custom())
# 200
Custom
класс выполняет всю работу, суммируя все параметры, которые он получает в init (). Вы можете вызвать этот класс, предоставив значения для суммирования: Custom(100,50,25).rate_for_custom()
Два других класса Air
и Sea
наследуются от класса Custom
и являются просто интерфейсом. Используя их, вы можете использовать ключевые аргументы вместо простых аргументов: Sea(supplier=100,delivery=50,insurance=25,port_tax=25)
, что более удобно.