


Quand `i = x` et `i = i x` produisent-ils des résultats différents en Python ?
Quand l'affectation et l'augmentation diffèrent : explorer "i = x" par rapport à "i = i x"
L'utilisation de l'opérateur = dans Python peut entraîner un comportement inattendu dans certains scénarios. Examinons les différences entre i = x et i = i x pour comprendre quand ils divergent.
Comprendre la surcharge de l'opérateur
L'opérateur = appelle le iadd si elle existe, ou la méthode add si iadd n'est pas disponible. En revanche, l'opérateur appelle principalement la méthode add.
Objets mutables ou immuables
Le comportement de = dépend du fait que l'objet soit attribué est mutable (peut être modifié) ou immuable (ne peut pas être modifié). Pour les objets immuables, les deux = et créent une nouvelle instance. Cependant, iadd modifie l'objet d'origine et le réaffecte au nom de la variable, écrasant la référence précédente.
Exemple : Listes
Pour illustrer la différence, considérez le code suivant :
a = [1, 2, 3] b = a b += [1, 2, 3] print(a) # [1, 2, 3, 1, 2, 3] print(b) # [1, 2, 3, 1, 2, 3]
Puisque les listes sont mutables, = modifie b en place, ce qui affecte a car les deux variables font référence à la même liste.
Maintenant, considérons :
a = [1, 2, 3] b = a b = b + [1, 2, 3] print(a) # [1, 2, 3] print(b) # [1, 2, 3, 1, 2, 3]
Dans ce cas, b = b [1, 2, 3] crée une nouvelle liste, laissant un inchangé . En effet, appelle la méthode add, qui renvoie une nouvelle instance.
Gestion des exceptions pour ' ='
Dans le cas où x. __add__ n'est pas implémenté ou renvoie NotImplemented, et x et y ont des types différents, l'opérateur se rabat sur y.__radd__ s'il existe. Par conséquent, ce qui suit est équivalent :
foo_instance += bar_instance
foo_instance = bar_instance.__radd__(bar_instance, foo_instance)
Remplacement de sous-classe
Lorsque foo_instance et bar_instance sont de types différents et que bar_instance est une sous-classe de foo_instance, bar_instance.__radd__ sera tenté avant foo_instance.__add__. Cela permet aux sous-classes de remplacer le comportement de leurs superclasses.
Conclusion
Comprendre les différences entre i = x et i = i x est crucial pour éviter des résultats inattendus dans la programmation Python . En sachant quand et comment ces opérateurs se comportent différemment, vous pouvez manipuler efficacement des objets immuables et mutables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

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)

Ce tutoriel détaille comment fusionner efficacement l'adaptateur PEFT LORA avec le modèle de base pour générer un modèle complètement indépendant. L'article souligne qu'il est faux d'utiliser directement Transformers.Automodel pour charger l'adaptateur et fusionner manuellement les poids, et fournit le processus correct pour utiliser la méthode Merge_and_unload dans la bibliothèque PEFT. De plus, le tutoriel souligne également l'importance de traiter les segments de mots et discute des problèmes et des solutions de compatibilité des versions de PEFT.

Exécutez pipinstall-rrequirements.txt pour installer le package de dépendance. Il est recommandé de créer et d'activer l'environnement virtuel d'abord pour éviter les conflits, s'assurer que le chemin du fichier est correct et que le PIP a été mis à jour et utiliser des options telles que --No-Deps ou --User pour ajuster le comportement d'installation si nécessaire.

Python est un outil de test simple et puissant dans Python. Après l'installation, les fichiers de test sont automatiquement découverts en fonction des règles de dénomination. Écrivez une fonction commençant par test_ pour les tests d'assurance, utilisez @ pytest.fixture pour créer des données de test réutilisables, vérifiez les exceptions via PyTest.Rais, prend en charge l'exécution de tests spécifiés et plusieurs options de ligne de commande et améliore l'efficacité des tests.

TheargParsemoduleisthereComMendwaytoHandleCommand-lineargumentsInpython, fournissantRobustParsing, Typevalidation, HelpMessages, AnderrorHling; usys.argvforsimplécasesrequiringminimalsepup.

Cet article vise à explorer le problème commun de la précision de calcul insuffisante des nombres de points flottants dans Python et Numpy, et explique que sa cause profonde réside dans la limitation de représentation des nombres de points flottants 64 bits standard. Pour les scénarios informatiques qui nécessitent une précision plus élevée, l'article introduira et comparera les méthodes d'utilisation, les fonctionnalités et les scénarios applicables de bibliothèques mathématiques de haute précision telles que MPMATH, SYMPY et GMPY pour aider les lecteurs à choisir les bons outils pour résoudre les besoins de précision complexe.

L'obtention de l'heure actuelle peut être implémentée dans Python via le module DateTime. 1. Utilisez dateTime.now () pour obtenir l'heure actuelle locale, 2. Utilisez le strftime ("% y-% m-% d% h:% m:% s") pour formater l'année de sortie, le mois, le jour, l'heure, la minute et la seconde, 3. UTCNow () et les opérations quotidiennes peuvent répondre aux besoins en combinant DateTime.now () avec des chaînes formatées.

PYPDF2, PDFPLUMBER et FPDF sont les bibliothèques de base pour Python pour traiter PDF. Utilisez le PYPDF2 pour effectuer l'extraction de texte, la fusion, la division et le chiffrement, tels que la lecture de la page via Pdfreader et l'appel extract_text () pour obtenir du contenu; PDFPLUMBER convient plus pour conserver l'extraction de texte de mise en page et la reconnaissance de la table, et prend en charge extract_tables () pour capturer avec précision les données de table; FPDF (FPDF2 recommandé) est utilisé pour générer du PDF, et les documents sont construits et sorties via add_page (), set_font () et cellule (). Lors de la fusion des PDF

Importer @ contextManagerfromContextLibandDeFineAgeneratorFonctionnement toTyieldSexactlyOnce, où les actes de championnalsAnterAndCodeLifteryiel
