私のクラスはオブジェクトを単独で作成できるようにしたいと考えていましたが、これは 'new'で可能でしたが、このエラーが発生してから明らかに動作しません:__new__ = TypeError:object()はパラメータを取らない
TypeError例外:それは、コードの他の部分から来るかもしれない場合にはは、オブジェクト()は、パラメータ
を取らないので、私が働いているクラスがあり、私はそれのすべてを掲示します。 TypeError: object() takes no parameters
あなた__new__
方法で
、あなたがobject(rayon, periode, envergure, look)
のために呼ばれるもの(cls
パラメータと関連して)であるobject.__new__(cls, rayon, periode, envergure,look)
を呼び出す:
class Planete:
def __new__(cls, rayon, periode, envergure,look):
print("test __new__ of the class {}".format(cls))
return object.__new__(cls, rayon, periode, envergure,look)
def __init__(self,rayon,periode,envergure,look):
self.rayon = rayon
self.periode = periode
#self.couleur = couleur
self.envergure = envergure
self.omega = (2*math.pi)/self.periode
self.i = 0
self.look = pygame.transform.rotozoom(look,0,self.envergure)
self.rect = pygame.Rect((0, 0), (0, 0))
#self.surf = pygame.Surface(self.rect.size)
def tourner(self) :
self.x = self.rayon*math.cos(self.omega*self.i)
self.x2 = int(self.x)+600
self.y = self.rayon*math.sin(self.omega*self.i)
self.y2 = int(self.y)+300
self.i = self.i + 1
self.rect = pygame.Rect((self.x2, self.y2), (50, 50))
def dessiner(self):
#pygame.draw.circle(gameDisplay,(self.couleur),((self.x2, self.y2)), self.envergure)
#gameDisplay.blit(self.surf,self)
gameDisplay.blit(self.look,(self.x2, self.y2))
新しいインスタンスの作成を制御する必要がある場合は、____ new_____を使用します。新しいインスタンスの初期化を制御する必要がある場合は、____nit____を使用します。 – Surajano
ここで '__new__'を定義する必要はありません。なぜあなたはそうしたのですか? –
エラーメッセージはどのようにクリアされませんか? –