


Explication détaillée de la nouvelle méthode spéciale python
object.__new__(cls[, ...])
Appelé pour créer une nouvelle instance de classe cls. __new__() est une méthode statique (dans une casse spéciale, vous n'avez donc pas besoin de la déclarer comme telle) qui prend la classe dont une instance a été demandée comme premier argument. Les arguments restants sont ceux passés à l'expression du constructeur d'objet (l'appel à la classe). La valeur de retour de __new__() doit être la nouvelle instance d'objet (généralement une instance de cls).
Les implémentations typiques créent une nouvelle instance de la classe en appelant la méthode __new__() de la superclasse à l'aide de super(currentclass, cls ).__new__(cls[, ...]) avec les arguments appropriés, puis en modifiant l'instance nouvellement créée si nécessaire avant de la renvoyer.
Si __new__() renvoie une instance de cls, alors __init__ de la nouvelle instance () sera invoquée comme __init__(self[, ...]), où self est la nouvelle instance et les arguments restants sont les mêmes que ceux transmis à __new__().
Si __new__() le fait ne renvoie pas d'instance de cls, la méthode __init__() de la nouvelle instance ne sera pas invoquée.
__new__() est principalement destinée à permettre aux sous-classes de types immuables (comme int, str ou tuple) de personnaliser l'instance. création. Il est également couramment remplacé dans les métaclasses personnalisées afin de personnaliser la création de classes.
调用产生一个新的类的实例,cls. __new__() est un produit de type __new__().象构造函数的表达式(对类的调用),__new()__的典型的实现方法就是在返回新生成的实例之前,调用父类的__new()__方法(super(currentclass, cls).__new__ (cls[, ...]))的)。
如果__new()_ _返回了一个cls的实例对象,然后就会调用这个新的实例的__init()__方法(__init__[,...]),self指新创建的实例其余的参数和传递给__new( )的一样。
如果__new()__没有成功返回一个cls的实例,就不会调用这个实例的init()方法。
__new ()__主要用来进行不可变类型(像是int,str,或者元组)的子类自定义实例的创建。也可以重写自定义元类来进行自定义类的创建。
举例:在实例化对象之前,下面的例子就是做一个去空格处理。
class Word(str): def __new__(cls,word): if ' ' in word: print("there is qutos") word = ''.join(word.split()) return str.__new__(cls,word) a = Word('hello sherry') print(a)
更多python特殊方法之new详解相关文章请关注PHP中文网!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

Fastapi ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...
