underbar python C'est ce que

0407 Modifier

introduction

Je suis désolé pour le post pour les débutants, mais je crois qu'il y a des débutants qui sont également troublés.

Underbar qui sort un peu

Pourquoi ne sortez-vous pas après avoir lu le code ou le livre de référence d'une personne? ** Ce underbar n'est-ce pas! Underbar comme _ **

python


H,W,_ = img.shape 

Ou d'abord

python


__main__

Pourquoi y a-t-il une barre inférieure? Comme. Cette fois, c'est une telle histoire.

J'ai trouvé un article divin alors que je m'inquiétais aussi cette fois-ci, alors je vais l'étoffer et le mâcher en me basant sur lui. Cliquez ici pour l'article sur Dieu qui a résolu vos soucis

[Maîtrisons le trait de soulignement (_) de "Pythonic divers" Python!](Https://medium.com/lsc-psd/pythonic%E8%89%B2%E3%80%85-python%E3%81% AE% E3% 82% A2% E3% 83% B3% E3% 83% 80% E3% 83% BC% E3% 82% B9% E3% 82% B3% E3% 82% A2-% E3% 82% 92 % E4% BD% BF% E3% 81% 84% E3% 81% 93% E3% 81% AA% E3% 81% 9D% E3% 81% 86-3c132842eeef)

_ Pour ignorer la valeur de retour

python


H,W,_ = img.shape 

C'est exactement ce que j'ai donné dans le premier exemple. Ça y est. .. .. Cela ignore la troisième valeur de retour de .shape-underscore Cité parce que la source de la citation a expliqué l'excès et la carence Dit

Python a de nombreuses bibliothèques, et j'importe et j'utilise souvent des fonctions. Dans ce cas, s'il existe plusieurs valeurs de retour de la fonction et qu'une partie n'est pas utilisée, vous pouvez utiliser le trait de soulignement et le supprimer sans occuper la mémoire de la valeur de retour.

Avec cela, vous pouvez créer un programme sans utiliser de mémoire gaspillée. Cela semble être le plus utilisé.

À propos du nom de la fonction _

Il semble qu'il existe quatre types en fonction de l'emplacement. De plus, il est défini dans la norme de codage PEP8. Je ne savais même pas qu'il y avait une telle définition. https://www.python.org/dev/peps/pep-0008/

Elle est décrite en détail dans PEP8> Convention de dénomination. Ensuite, je résumerai les quatre suivants

_function (x): un avant la fonction

python


def _single_leading_underscore(x):
    return n
#weak "internal use" indicator. E.g. from M import *
#does not import objects whose names start with an underscore.

Si vous l'écrivez comme ceci, il ne sera pas appelé par func import * depuis un autre endroit, mais il semble que vous puissiez appeler une fonction avec un trait de soulignement comme fonction dans une classe comme classx._func (). Fondamentalement, il semble être la pratique de python de ne pas accepter les références externes, mais d'y ajouter un trait de soulignement. Est-ce aussi une mesure de lecture?

function (x) _: un après la fonction

python


def list_(x):
    return n
#used by convention to avoid conflicts with Python keyword

Si vous souhaitez utiliser les mots réservés de python tels que liste et classe dans le nom de la fonction, ajoutez un _ à la fin.

__function (x): Deux avant le nom de la classe

python


def __double_leading_underscore:
     return n
#when naming a class attribute, invokes name mangling 
#(inside class FooBar, __boo becomes _FooBar__boo; see below).

Le fait de précéder une fonction dans une classe avec deux traits de soulignement appellera le ** mangling ** nommé. Mangling signifie modification de nom, et en bref, il semble qu'il ne soit pas traité comme ordinaire en interne. Comme indiqué dans l'exemple ci-dessus, la variable \ _ \ _boo de la classe FooBar ne peut pas être appelée par FooBar. \ _ \ _Boo, et ne peut être appelée que par \ _FooBar \ _ \ _boo. Cela n'accepte pas non plus l'accès de l'extérieur et je pense que cela peut être considéré comme l'une des contre-mesures.

\ _ \ _ Fonction \ _ \ _ (x): Deux avant et après la fonction

python


def __double_leading_and_trailing_underscore__: 
    return n
# "magic" objects or attributes that live in user-controlled 
# namespaces. E.g. __init__, __import__ or __file__. Never invent 
# such names; only use them as documented.``

Si vous ajoutez deux traits de soulignement avant et après la fonction dans la classe, cela devient Magic Method (méthode spéciale). C'est une histoire sur des méthodes spéciales, mais il semble qu'elles soient utilisées lorsque vous voulez changer le comportement d'un objet ou le faire bouger selon la nature de la classe. Par exemple, \ _ \ _ init \ _ \ _ utilise l'argument passé. Il initialise un objet nouvellement créé dans la définition de classe. Il existe de nombreuses méthodes magiques. C'est sur la liste, mais c'est plein http://www.ops.dti.ne.jp/ironpython.beginner/method.html

Rendre les nombres plus faciles à lire _

python


>>> 1_000_000
Out: 1000000

[Référence](https://medium.com/lsc-psd/pythonic%E8%89%B2%E3%80%85-python%E3%81%AE%E3%82%A2%E3%83%B3% E3% 83% 80% E3% 83% BC% E3% 82% B9% E3% 82% B3% E3% 82% A2-% E3% 82% 92% E4% BD% BF% E3% 81% 84% E3 % 81% 93% E3% 81% AA% E3% 81% 9D% E3% 81% 86-3c132842eeef)

À partir de Python 3.6, vous pouvez ajouter un trait de soulignement au nombre pour le rendre plus facile à lire. Vous pouvez réaliser une virgule tous les 3 chiffres qui sont couramment utilisés.

Il semble que même si vous tapez un trait de soulignement dans une valeur numérique au lieu d'une virgule tous les 3 chiffres, il sera reconnu comme une valeur numérique appropriée. C'est pratique lorsque vous souhaitez insérer un grand nombre de chiffres.

Indique la dernière valeur affichée dans l'interpréteur _

python


>>> 10
Out: 10
>>> _ * 3
Out: 30
>>> _ * 10
Out: 300

Je ne le savais pas, mais lors de l'utilisation de l'interpréteur python, il semble que vous puissiez obtenir le numéro affiché précédemment avec le trait de soulignement.

** Addendum 0406 ** Comme vous l'avez souligné dans le commentaire, si vous utilisez \ _ comme nom de variable, cela semble fonctionner comme un interpréteur pour afficher la valeur placée dans la variable au lieu de la valeur numérique précédemment affichée. Veuillez vous référer aux commentaires pour plus de détails. Cela donne un exemple facile à comprendre. Je vous remercie.

Alors qu'est-ce que si \ _ \ _ name__ == '\ _ \ _ main__'?

J'ai trouvé un site magnifiquement organisé Signification et utilisation de Python si \ _ \ _ nom \ _ \ _ == '\ _ \ _ main \ _ \ _'

Il semble que "le traitement ultérieur ne soit exécuté que lorsque le fichier correspondant est exécuté en tant que script depuis la ligne de commande". En d'autres termes, cela ne fonctionne pas lorsqu'il est appelé de quelque part

Quand je lis le code des autres, je sens qu'il est écrit pour montrer que c'est le principal.

en conclusion

Je veux écrire du beau code.

Autres références

[Python Cheet Sheet] Méthode spéciale Comment mettre un trait de soulignement dans la notation markdown

Recommended Posts

underbar python C'est ce que
Variable de soulignement Python
Python
python kafka
Résumé Python
Python intégré
Notation d'inclusion Python
Technique Python
Étudier Python
Compte à rebours Python 2.7
Python FlowFishMaster
Service Python
astuces python
fonction python ①
Les bases de Python
Mémo Python
ufo-> python (3)
Notation d'inclusion Python
Installer python
Les bases de Python ④
Mémorandum Python 2
mémo python
Python Jinja2
Incrément Python
atCoder 173 Python
[Python] fonction
Installation de Python
Installer Python 3.4.3.
Mémo Python
Itératif Python
Algorithme Python
Python2 + mot2vec
[Python] Variables
Fonctions Python
Python sys.intern ()
Tutoriel Python
Fraction Python
Résumé Python
Démarrer python
[Python] Trier
Remarque: Python
Les bases de Python ③
Sortie du journal python
Les bases de Python
[Scraping] Scraping Python
Mise à jour Python (2.6-> 2.7)
mémo python
Mémorandum Python
Python #sort
ufo-> python
Python nslookup
apprentissage de python
[Rpmbuild] Python 3.7.3.
Python au prorata (1)
mémorandum python
Télécharger Python
mémorandum python
Mémo Python
a commencé python