Если вы не можете создать значение в определении функции, вы можете использовать значение, которое ничего не указывает, к счастью, Python имеет None
, поэтому вы можете сделать что-то вроде:
class MyClass(object):
def __init__(self, argument=None):
if argument is None:
self.argm = self.create_argm()
else:
self.argm = argument
def create_argm(self):
return 'some_value'
, если None
делитне подходит, потому что вы хотите, чтобы это было действительное значение для argument
, не предполагая, что оно было опущено, вы всегда можете создать фиктивное значение:
class MyNone:
pass
class MyClass(object):
def __init__(self, argument=MyNone):
if argument is MyNone:
self.argm = self.create_argm()
else:
self.argm = argument
def create_argm(self):
return 'some_value'