__init__
yönteminin argümanlarını otomatik olarak self
(bazılarının) argümanlarına bağlamanın bir yolu var mı? yerineOtomatik ciltleme için python dekoratör __init__ arguments
class Person:
@lazy_init
def __init__(self, name, age, address):
...
...: insanlar zaten bu gibi durumlarda kullandıkları benzer bir şey olmadığını merak
class Person:
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address
...
ben gibi bir şey yani. Ya da ilk etapta böyle yapmamamın bir sebebi var mı? Eğer özelliklerine haritasına nitelikler dışında bir şey olması başladıktan sonra, gerçi zorluklarla karşılaşmaya gidiyoruz
def lazy_init(init):
import inspect
arg_names = inspect.getargspec(init)[0]
def new_init(self, *args):
for name, value in zip(arg_names[1:], args):
setattr(self, name, value)
init(self, *args)
return new_init
class Person:
@lazy_init
def __init__(self, name, age):
pass
p = Person("Derp", 13)
print p.name, p.age
:
İşte bu kadar! Teşekkür ederim. –
Başka bir kaynağın sadece bir bağlantısı olan yorumlar oldukça kötü bir biçimdir. –