0
私はinitを実行する前にargsを変更しようとしていますが、それは変更されず、メインに与えられた最初のargsのままです。どうすればargsを変更するのですか?new?__new__から__init__へのPythonの転送args
class A(object):
def __init__(self,ip,st):
print 'A arrived to init '+st
self.ip=ip
def __new__(cls,ip,st):
print "A arrived to new"
if ip>10:
return object.__new__(cls,ip,"A")
while True:
s=input("input?")
a=A(s,"a")
print type(a)
出力:
input?88
A arrived to new
A arrived to init a
<class '__main__.A'>
input?44
A arrived to new
A arrived to init a
<class '__main__.A'>
input?22
A arrived to new
A arrived to init a
<class '__main__.A'>
input?12
A arrived to new
A arrived to init a
<class '__main__.A'>
デコレータが必要ないことを指摘したいだけです。あなたは '__init__'の中で同じことをすることができます。 –
@Rawing確かに。 –
@Rawingは答えにあなたのコメントを追加しました。 –