


Introduction à l'utilisation des descripteurs Python (avec exemples)
Cet article vous apporte une introduction à l'utilisation des descripteurs Python (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
En tant qu'utilisateur de Python, vous utilisez peut-être Python depuis un certain temps, mais vous n'avez peut-être pas utilisé de descripteurs en Python. Voici ensuite une introduction à l'utilisation des descripteurs
Introduction à la scène
Afin d'introduire l'utilisation des descripteurs, nous concevons d'abord une classe très simple :class Product(): def __init__(self,name,quantity,price): self.name = name self.quantity = quantity self.price = price
class Product(): def __init__(self,name,quantity,price): self.name = name if quantity<0: raise ValueError('quantity must be >= 0') self.quantity = quantity if quantity<0: raise ValueError('price must be >= 0') self.price = price
On peut donc utiliser ' Features' pour résoudre ce problème :
Le @property et @quantity.setter sont ici deux décorateurs, qui peuvent définir la lecture et l'écriture des propriétés, ce qui équivaut à Il est utilisé pour lire et écrire attributs, mais il exécute en fait une fonction. Vous pouvez trouver vous-même l'introduction spécifique des caractéristiques. Le but principal ici est d'obtenir le descripteur.class Product(): def __init__(self,name,quantity,price): self.name = name self.quantity = quantity self.price = price @property def quantity(self): return self._quantity @quantity.setter def quantity(self,value): if value < 0: raise ValueError('quantity must be >= 0') else: self._quantity = value @property def price(self): return self._price @price.setter def price(self, value): if value < 0: raise ValueError('price must be >= 0') else: self._price = value book = Product('mybook',6,30) print(book.quantity)
Grâce aux attributs, vous pouvez ajouter du jugement lors de l'attribution de valeurs aux attributs. Mais lorsqu'il y a plus d'attributs dans une classe et que de nombreux attributs doivent également ajouter des vérifications pour les affectations non négatives, l'utilisation des attributs deviendra trop lourde, il y aura beaucoup de duplication de code et de nombreux décorateurs seront ajoutés. peut utiliser des descripteurs pour résoudre ce problème.
Utilisation de descripteurs
Premier coup d'oeil au concept de descripteurs
Un descripteur est un attribut d'objet de "comportement de liaison" Dans le protocole de descripteur, il peut être transmis par méthode. accès aux propriétés. Ces méthodes incluent get(), set() et delete(). Si l'une de ces méthodes est définie dans un objet, l'objet est un descripteur
(ces méthodes sont des méthodes spéciales, le double soulignement ne l'est pas). affiché en raison de la conversion)
Nous modifions d'abord la classe de produit ci-dessus en fonction de l'utilisation des descripteurs :
NotNegative est la classe de descripteur, qui est l'attribut de classe de la classe Productclass NotNegative(): def __init__(self,name): self.name = name def __set__(self, instance, value): if value < 0: raise ValueError(self.name+' must be >= 0') else: instance.__dict__[self.name] = value class Product(): quantity = NotNegative('quantity') price = NotNegative('price') def __init__(self,name,quantity,price): self.name = name self.quantity = quantity self.price = price book = Product('mybook',2,5)
Dans cet exemple, si book.quantity=3 est exécuté, l'interpréteur recherchera d'abord les attributs d'instance et trouvera qu'il existe un attribut de quantité, mais l'interprète trouvera également qu'il existe également un attribut de classe qui est un descripteur, donc l'interprète choisira éventuellement d'emprunter la voie du descripteur. Ensuite, comme il s'agit d'un descripteur, la méthode spéciale définie dans le descripteur sera exécutée. Les paramètres de la méthode spéciale définie dans le
descripteur sont :
self : C'est l'instance du descripteur
instance : C'est l'instance équivalente au livre d'exemple
value : C'est la valeur à attribuer
Étant donné que ces attributs n'ont pas d'exigences particulières pour la valeur, la méthode spéciale get n'est pas implémentée dans l'exemple.
La méthode get possède également 3 paramètres : self, instance,owner. self, instance sont les mêmes que celles de set, etowner est la classe Product dans l'exemple
Ensuite, nous examinerons principalement les opérations effectuées dans la partie else de la méthode set de descripteurs
En appelant l'instance de livre dict, attribuez directement des valeurs aux attributs dans le dict, ce qui est également une raison importante pour passer l'instance dans le paramètre. Puisque l'objet descripteur existe en tant qu'attribut de classe, de nombreux objets de cette classe peuvent être consultés. Afin d'éviter l'écrasement des attributs, il convient de le stocker directement dans l'attribut de l'instance. Mais il n'y a aucun moyen d'attribuer des valeurs aux attributs ici, sinon cela tombera dans une boucle infinie.instance.__dict__[self.name] = value
Pour les descripteurs de données et les descripteurs de non-données, si une classe définit uniquement la méthode get() mais pas les méthodes set(), delete(), elle est considérée comme un descripteur de non-données, sinon, alors Devenir ; un descripteur de données.
Enfin, cet article présente et explique brièvement l'utilisation des descripteurs. Si vous avez besoin d'une compréhension plus approfondie, vous pouvez vous référer à la section des descripteurs d'attribut de « Fluent Python »
.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

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)

La clé du contrôle des plumes est de comprendre sa nature progressive. Le PS lui-même ne fournit pas la possibilité de contrôler directement la courbe de gradient, mais vous pouvez ajuster de manière flexible le rayon et la douceur du gradient par plusieurs plumes, des masques correspondants et des sélections fines pour obtenir un effet de transition naturel.

L'article présente le fonctionnement de la base de données MySQL. Tout d'abord, vous devez installer un client MySQL, tel que MySQLWorkBench ou le client de ligne de commande. 1. Utilisez la commande MySQL-UROot-P pour vous connecter au serveur et connecter avec le mot de passe du compte racine; 2. Utilisez Createdatabase pour créer une base de données et utilisez Sélectionner une base de données; 3. Utilisez CreateTable pour créer une table, définissez des champs et des types de données; 4. Utilisez InsertInto pour insérer des données, remettre en question les données, mettre à jour les données par mise à jour et supprimer les données par Supprimer. Ce n'est qu'en maîtrisant ces étapes, en apprenant à faire face à des problèmes courants et à l'optimisation des performances de la base de données que vous pouvez utiliser efficacement MySQL.

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

La plume PS est un effet flou du bord de l'image, qui est réalisé par la moyenne pondérée des pixels dans la zone de bord. Le réglage du rayon de la plume peut contrôler le degré de flou, et plus la valeur est grande, plus elle est floue. Le réglage flexible du rayon peut optimiser l'effet en fonction des images et des besoins. Par exemple, l'utilisation d'un rayon plus petit pour maintenir les détails lors du traitement des photos des caractères et l'utilisation d'un rayon plus grand pour créer une sensation brumeuse lorsque le traitement de l'art fonctionne. Cependant, il convient de noter que trop grand, le rayon peut facilement perdre des détails de bord, et trop petit, l'effet ne sera pas évident. L'effet de plumes est affecté par la résolution de l'image et doit être ajusté en fonction de la compréhension de l'image et de la saisie de l'effet.

Les plumes de PS peuvent entraîner une perte de détails d'image, une saturation des couleurs réduite et une augmentation du bruit. Pour réduire l'impact, il est recommandé d'utiliser un rayon de plumes plus petit, de copier la couche puis de plume, et de comparer soigneusement la qualité d'image avant et après les plumes. De plus, les plumes ne conviennent pas à tous les cas, et parfois les outils tels que les masques conviennent plus à la gestion des bords de l'image.

L'optimisation des performances MySQL doit commencer à partir de trois aspects: configuration d'installation, indexation et optimisation des requêtes, surveillance et réglage. 1. Après l'installation, vous devez ajuster le fichier my.cnf en fonction de la configuration du serveur, tel que le paramètre innodb_buffer_pool_size, et fermer query_cache_size; 2. Créez un index approprié pour éviter les index excessifs et optimiser les instructions de requête, telles que l'utilisation de la commande Explication pour analyser le plan d'exécution; 3. Utilisez le propre outil de surveillance de MySQL (ShowProcessList, Showstatus) pour surveiller la santé de la base de données, et sauvegarde régulièrement et organisez la base de données. Ce n'est qu'en optimisant en continu ces étapes que les performances de la base de données MySQL peuvent être améliorées.

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

Raisons et solutions courantes pour l'échec de l'installation MySQL: 1. Nom d'utilisateur ou mot de passe incorrect, ou le service MySQL n'est pas démarré, vous devez vérifier le nom d'utilisateur et le mot de passe et démarrer le service; 2. Conflits portuaires, vous devez modifier le port d'écoute MySQL ou fermer le programme qui occupe le port 3306; 3. La bibliothèque de dépendances est manquante, vous devez utiliser le gestionnaire de package système pour installer la bibliothèque de dépendances nécessaires; 4. Autorisations insuffisantes, vous devez utiliser les droits de Sudo ou d'administrateur pour exécuter l'installateur; 5. Fichier de configuration incorrect, vous devez vérifier le fichier de configuration My.cnf pour vous assurer que la configuration est correcte. Ce n'est qu'en travaillant régulièrement et soigneusement que MySQL peut être installé en douceur.
