Skip to main content

L'article précédent a été inclus dans la nature et en utilisant la décoration plus tard, et a également appris son utilisation de base, suffisamment pour traiter 80% de la scène. Cependant, il y a toujours 20% des scènes pour utiliser des méthodes de base qui ne peuvent pas être résolues. À ce stade, nous avons besoin de plus en plus de moyens d'utiliser.


Exemple: je veux contrôler la fonction de la décoration via un paramètre, ce problème est vraiment populaire. Prenez le temps d'enregistrement, nous savons tous que le temps peut être écrit dans de nombreux formats, tels que ceux-ci pouvant être enregistrés 2020-05-04 ou 20200504, et peut également être enregistré le 04 / 05/2016, s'il enregistre toujours l'horodatage. Par exemple: Nous reconnaissons maintenant une décoration de journaux de journaux, utilisées pour signer des journaux pour nous, nous souhaitons maintenant contrôler le format horaire des journaux enregistrés, cette demande ne résolve pas en utilisant la décoration la plus simple.
Cette fois, si vous voulez résoudreLe problème, vous devez introduire les paramètres, ce qui signifie que nous devons participer aux paramètres de la décoration. Mais le problème est de venir, comment ajouter ce paramètre, où est-ce?
1. Identifier les paramètres décoratifs
Avant d'introduire une utilisation spécifique, voir le code de code décoratif:

C'est la décoration la plus simple que nous avons mentionnée la dernière fois. Si nous voulons transmettre un type de paramètre à ce stade, nous pouvons contrôler la sortie de la décoration. Comme ceci:

Nous pourrions penser que l'ajout d'un type_ dans le paramètre MyDec, mais si vous essayez de le trouver, vous rencontrerez une erreur:


La signification importante de l'erreur est bien comprise, mais la raison est une personne déroutante. Cette erreur est une fonction myDEC plus petite qu'un paramètre pour sélectionner FUNC. Ce func est la fonction que nous avons à packer, mais cela ne vient pas automatiquement, comment pouvons-nous nous rappeler moins que ce paramètre?


La nature de ce problème ne peut pas être comprise, la décoration est difficile à devenir, car seulement comprendre cela, peut comprendre les progrès étranges avancés diverses de l'utilisation de la décoration arrière. Mais très fosses, plus d'informations recommande simplement comment elle est utilisée et explorant rarement les raisons qui l'appuient, cela donnera aux débutants à comprendre. J'ai également passé beaucoup d'esprit quand j'étudiais, j'ai finalement expliqué clairement, disant que c'était très simple, mais ce n'était pas facile. En fait, cela signalera la raison principale qu'il existe des paramètres et aucun paramètre. La décoration est complètement différente.

Considérons d'excellentes décorations, telles que:


nous effectuons Hello_World (), équivalent à la mise en œuvre de MyDec (Hello_world). Regardez, nous devons commencer cette ligne de code, c'est vraiment le résultat des deux lignes de code suivantes:

Quel est le paramètre sur cette fonction?


lorsqu'il est exécuté, c'est vraiment comme ça:
Après cette compréhension, nous continuons de descendre, nous voulons maintenant qu'un paramètre passe à la décoration, selon nos idées, deux indicateurs ultérieurs, ce sera le même.

Mais malheureusement, les interprètes de Python ne sont pas conçus. Il a créé une couche emballée sur la décoration plus les paramètres, c'est-à-dire lorsque la fonction Hello_world des paramètres d'introduction est égale au code suivant:


à cause de nombreux packages, de sorte que le L'ordre de la fonction et les paramètres décoratifs sont différents et la commande est également différente. Après avoir compris cela, plus simple, car Python Interprète ajoute une couche lors de l'interprétation des paramètres décoratifs, alors si nous voulons déployer les paramètres, seuls des ensembles décoratifs sont également disponibles dans des décorations. Oui. Par exemple, il peut être écrit comme ceci:
afin que nous puissions nous réinscrire:
.
] 2 paramètres par défaut doivent être effectués
cIl semble que tout soit parfait, mais en fait, il y a une grande question à ignorer par nous. Ce problème est le problème de paramètre par défaut. Lorsque nous définissons la décoration, placez ce paramètre type_ à l'option. Cela est également compatible avec notre situation réelle, sinon nécessaire, les paramètres peuvent être ignorés. Mais cela a conduit à un problème et certaines personnes n'ont pas à rédiger une reconnaissance avec MyDEC () et certaines personnes utilisées pour écrire MyDEC. Si nous allons essayer mon décembre, nous constaterons que cela sera rapporté:
Cette erreur est identique à celle ci-dessus, la cause de l'apparence aime aussi, c'est moins de func. paramètres. Mais très étrange, pourquoi avez-vous du fonctionnement?
La raison est simple, car nous retirons les supports, décorer que l'appareil est renvoyé à la structure de deux couches précédente!
Il s'agit de beaucoup de nids de poule, notre structure décorative n'est pas modifiée si vous utilisez une structure à deux couches, il n'y a aucun moyen de passer laParamètre, mais si vous ne changez pas, vous ne souhaitez que le style uniforme des programmeurs et des parenthèses? C'est bien sûr une façon, y a-t-il une meilleure façon? Existe-t-il un moyen d'unifier ces deux logiques?

Bien sûr, pour résoudre ce problème, nous devons utiliser un nouvel outil appelé Fonction de biais. La fonction est très bonne, en fait, c'est aussi une fonction plus élevée, en fait, c'est un paquet fermé. L'utilisation d'une fonction partielle est destinée à plusieurs fonctions de paramètres et les valeurs de transmission de certains paramètres peuvent être fixées à l'aide de la fonction partielle, donc agissant comme une fonctionnalisation simple de fonction. Prenons un exemple, nous créons une fonction POW pour calculer n Times of X:


Cette fonction doit transférer les paramètres x et n, si nous ne pouvons que calculer le carré, nous pouvons Utilisez le package fermé, modifier N paramètres, créez une nouvelle fonction pour le faire. Par exemple:


EssenceLa fonction partielle est fermée, mais elle simplifie notre code:
Nous devons simplement passer la fonction d'origine sera traitée et la valeur de paramètre corrigée. Nous utilisons la fonction partielle pour résoudre le problème maintenant dans la décoration. Le rappel, la décoration sans paramètres est la fonction à deux couches imbriquée et la courroie est de trois couches imbriquées. Après cela, nous utilisons une partie, notamment ajouter une couche imbriquée dans le cas
Voyons ce détail, lorsque nous ne transmettons pas les paramètres, nous l'exécutons réellement. Cur = MyDEC (FUNC), ce temps de fonctionnement n'est pas vide, puis une instruction dans si elle n'est pas activée, il retournera donc à MyWrap. Si vous passez les paramètres, cette fois, cette fonction est non, active la partie dans si elle est. Notez que nous avons participé partiellement, c'est-à-dire que nous avons corrigé ce type de paramètre, l'appel est toujours renvoyé comme myWrap, équivalent aux paramètres supplémentaires des deux couches via une partie. TUne couche et une logique uniformément.
Mardi, finissant
Le concept d'aujourd'hui est plus compliqué que la décoration précédente, cela peut ne pas la comprendre, en fait, c'est très normal. Ce n'est pas seulement le problème de la décoration, mais aussi le problème de Python, qui correspond aux caractéristiques de la programmation fonctionnelle. La programmation avec une puissance est très flexible, il est très pratique, mais les inconvénients sont également clairs, le code est difficile à maintenir, la lecture est difficile à lire et ce n'est pas simple. Les débutants typiques sont simples et profonds et très difficiles à être typiques. Donc, si vous sentez que vous ne pouvez pas comprendre cela, ce n'est pas votre question. D'une part, nous devons cultiver leurs propres fonctions de programmation, d'autre part, nous devons également nous habituer à utiliser la décoration de Python.

Enfin, je pensais, car seuls les loups et les royaumes, ont récemment atteint des jeux difficiles. Quand j'ai commencé à jouer, je me sentais très difficile, des calories régulières, Un chef est mort des dizaines d'heures à la maison. Je suis venu plus tard, j'ai lentement trouvé l'astuce, j'ai trouvé que ce genre de jeu et même tous les jeux sont simples.

Ce n'est pas seulement moi familier, mais aussi plus parce que j'ai commencé à penser à jouer à des jeux, commencez à penser à ces conceptions de patron? Que devez-vous traiter avec nous? Quelles sont les règles de droit? Pensez plus, avez aussi un pourboire. Une fois que vous en avez plus, de nombreux chefs n'ont la première fois que deux ou trois collections familières, vous pouvez le transmettre. Peu à peu, j'ai trouvé beaucoup de choses dans la vie. Comme le patron dans le jeu, je viens de le voir. Quand je l'ai vu, j'ai senti que je ne comprenais pas ça, je me sentais perplexe, j'ai senti que c'était une grosse chose, donc c'était difficile. Mais tant qu'il y a un cœur courageux, courageux, apprenez à faire froid et vivre, mais c'est juste un tigre en papier. J'espère vous donner un peu d'inspiration. J'espèreJ'espère que les difficultés devant les gens ne sont que des tigres en papier.J'espère que tout le monde peut trouver leur courage.

Sujets