Obtenir TypeError sur ces méthodes où j'ai utilisé J'ai commencé par faire un objet singleton qui vérifie ses propres références pour rester la singularité. J'ai utilisé auto code> en tant que paramètre
manquant 1 argument de position requis: 'Self' code>. Si la méthode comporte plus de 1 arguments, y compris
auto code>, il affiche une erreur similaire d'un autre argument de position manquant.
__ nouveau __ code> pour le faire. P>
core.py.py h2>
script.py h2>
ERREURS: H2>
print(c.__repr__())
TypeError: __repr__() missing 1 required positional argument: 'self'
c.scene(640, 480)
TypeError: scene() missing 1 required positional argument: 'height'
3 Réponses :
La bonne manière est utilisée REC code> comme ceci:
oups, et de toute façon c'est suffisant pour les objets courants. Vous pouvez en effet utiliser Démo: P> < Pré> xxx pré> p> __ nouveau __ code> reçoit la classe et est censé renvoyer l'objet nouvellement créé! Lorsque votre code renvoie la classe elle-même, chose va mal. Vous devriez avoir:
__ nouveau __ code> est une configuration avancée, avec principalement des objets immutables qui ne peuvent pas être configurés dans
__ init __ code> . Dans votre exemple, vous devriez simplement le supprimer: p>
__ nouveau __ code> pour construire des singletons, et même l'utiliser pour construire des hiérarchies de singletons, ce qui signifie que chaque sous-classe de noyau sera un singleton: p>
__ RECR __ code> utilise
ID (auto) code> pour identifier l'objet et non la classe. P>
Mais cela ne fait pas un singleton.
Il ressemble à un parce que vous identifiez l'objet de la classe, et non avec la PO Custom Rep. Je soupçonne qu'il veut d'identifier (auto) non id (noyau).
Wow! Cette approche fonctionne, avec les chandatrices souhaitées. Merci.
@Sergeballesta Pourquoi ajoutez-vous ou non ISInstance (CLS._OBJ, CLS) code> ?. Semble inutile pour moi.
@Progmaticoo: C'est ce qui permet à noyau code> d'être utilisé comme classe de base pour Singleton Sous-classes: chaque sous-classe a son propre membre
_OBJ code>.
Votre code fonctionne presque. Jetez un coup d'œil ici:
J'ai essayé cela mais cela ne me donne pas l'opération souhaitée. Parce que cette façon, j'ai besoin de référencer d'autres variables de la classe par codage rigide pour toutes les variables. C'est pourquoi je veux faire référence à une classe Singleton. Et voir également pour les contenus édités pour aider à faire le cas utilisé pour ce que je veux utiliser.
@RUPAMKAIII Désolé, je ne comprends pas votre point quand vous dites "Parce que cette façon de faire référence à d'autres variables de la classe par codage rigide pour toutes les variables". C'est un singleton. Core et Core1 ne sont que deux références sur le même objet, il ressemble à ce que vous voulez utiliser, bien que je mets passez dans __ init __ code> juste pour que vous puissiez remplir de vos besoins, car ils n'étaient pas si clairs Comme maintenant que vous avez édité. Ma réponse est la même chose que Serge, à part un petit détail qui me semble inutile. Je l'ai patiné pour des éclaircissements.
@RUPAMKAIRI C'est bon, en fait, c'est nécessaire pour le sous-classement singleton.
Supprimer auto de la fonction
Cette ligne
def __new __ (CLS, * args, ** kwargs): code> devrait devenir comme ceci:
def __New __ (Self, CLS, * args, ** kwargs): code>
@ abdullah.cu pourquoi est-ce? Il n'y a pas encore d'objet d'instance.
Appelez avec impression (REP (C)). Gardez l'auto-arg. "Et c. Reprendre __ () devrait fonctionner aussi". Non. Pardon.