[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée

** * Cet article provient d'Udemy "[Introduction à Python3 enseignée par des ingénieurs actifs de la Silicon Valley + application + style de code de style américain Silicon Valley](https://www.udemy.com/course/python-beginner/" Introduction à Python3 enseignée par des ingénieurs actifs de la Silicon Valley + application + Style de code de style de la Silicon Valley américaine ")" C'est une note de classe pour moi après avoir suivi le cours. Il est ouvert au public avec la permission de l'instructeur Jun Sakai. ** **

■ Espace de nom et portée

animal = 'cat'

def f():
    print(animal)

f()

result


cat

Puisque ʻanimal ici est une variable globale, elle peut bien sûr être appelée dans f () `.

animal = 'cat'

def f():
    animal = 'dog'
    print('after:', animal)

f()

result


after: dog

Bien sûr, cela imprime dog, mais cela n'écrase pas la variable globale ʻanimal`.

animal = 'cat'

def f():
    print(animal)
    animal = 'dog'
    print('after:', animal)

f()

result


UnboundLocalError: local variable 'animal' referenced before assignment

Quand j'ai essayé pour la première fois d'imprimer «animal», j'ai eu une erreur. C'est une erreur qu'il y a une description qui déclare une variable locale dans la fonction et que vous essayez de l'imprimer avant qu'elle ne soit écrite.

animal = 'cat'

def f():
    # print(animal)
    animal = 'dog'
    print('local:', animal)

f()
print('global:', animal)

result


local: dog
global: cat

Dans f (), déclarez la variable locale ʻanimal et affichez-la, L'impression sur la dernière ligne imprime la variable globale ʻanimal.

animal = 'cat'

def f():
    global animal
    animal = 'dog'
    print('local:', animal)

f()
print('global:', animal)

result


local: dog
global: dog

L'appel de la variable globale ʻanimlal en utilisant global` dans la fonction écrasera cette variable globale.

animal = 'cat'

def f():
    animal = 'dog'
    print(locals())

f()
print(globals())

result


{'animal': 'dog'}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fd8f9f687f0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'test.py', '__cached__': None, 'animal': 'cat', 'f': <function f at 0x7fd8f9db9160>}

Vous pouvez appeler des variables locales et globales comme dictionnaire en utilisant locals () et globals (). Si vous regardez les variables globales imprimées, vous pouvez voir qu'il y a des variables qui sont définies à l'avance du côté python.

def TestFunc():
    """Test func doc"""
    print(TestFunc.__name__)
    print(TestFunc.__doc__)

TestFunc()
print('global:', __name__)

result


TestFunc
Test func doc
global: __main__

Si vous spécifiez un nom de fonction, vous pouvez afficher le «name» et le «doc» de cette fonction.

Recommended Posts

[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
[Présentation de l'application Udemy Python3 +] 31. Commentaire
[Présentation de l'application Udemy Python3 +] 57. Décorateur
[Présentation de l'application Udemy Python3 +] 56. Clôture
[Introduction à l'application Udemy Python3 +] Résumé
[Introduction à l'application Udemy Python3 +] 35. Opérateurs de comparaison et opérateurs logiques
[Introduction à Udemy Python3 + Application] 68. Instruction d'importation et AS
[Introduction à Udemy Python3 + Application] 18. Méthode List
[Introduction à Udemy Python3 + Application] 63. Notation d'inclusion du générateur
[Introduction à l'application Udemy Python3 +] 28. Type collectif
[Introduction à Udemy Python3 + Application] 25. Méthode de type dictionnaire
[Introduction à Udemy Python3 + Application] 13. Méthode de caractères
[Introduction à l'application Udemy Python3 +] 55. Fonctions intégrées
[Introduction à l'application Udemy Python3 +] 48. Définition des fonctions
[Introduction à l'application Udemy Python3 +] 21. Type Taple
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
[Introduction à l'application Udemy Python3 +] 39. instruction while, instruction continue et instruction break
[Introduction à l'application Udemy Python3 +] 45. fonction enumerate
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
[Introduction à l'application Udemy Python3 +] 41. fonction d'entrée
[Introduction à l'application Udemy Python3 +] 17. Opération de liste
[Introduction à l'application Udemy Python3 +] 65. Gestion des exceptions
[Introduction à l'application Udemy Python3 +] 11. Chaîne de caractères
[Introduction à l'application Udemy Python3 +] 44. fonction range
[Introduction à l'application Udemy Python3 +] 46. fonction zip
[Introduction à l'application Udemy Python3 +] 24. Type de dictionnaire
[Introduction à Udemy Python3 + Application] 50. Arguments de position, arguments de mots-clés et arguments par défaut
[Introduction à Udemy Python3 + Application] 8. Déclaration de variable
[Introduction à Udemy Python3 + Application] 29. Méthode Set
[Introduction à l'application Udemy Python3 +] 16. Type de liste
[Introduction à Udemy Python3 + Application] 61. Notation d'inclusion de dictionnaire
[Introduction à l'application Udemy Python3 +] 22. Déballage de taples
[Introduction à Udemy Python3 + Application] 49. Citation de fonction et déclaration de valeur de retour
[Introduction à Udemy Python3 + Application] 69. Importation du chemin absolu et du chemin relatif
[Introduction à l'application Udemy Python3 +] 12. Indexation et découpage des chaînes de caractères
[Introduction à l'application Udemy Python3 +] 23. Comment utiliser Tapuru
[Introduction à Udemy Python3 + Application] 60. Notation d'inclusion de liste
[Introduction à Udemy Python3 + Application] 19. Copie de la liste
[Introduction à Udemy Python3 + Application] 38. Lors du jugement Aucun
[Introduction à l'application Udemy Python3 +] 40. Instruction while else
[Introduction à Udemy Python3 + Application] 62. Définir la notation d'inclusion
[Introduction à l'application Udemy Python3 +] 43. instruction for else
[Introduction à Udemy Python3 + Application] 67. Arguments de ligne de commande
[Introduction à l'application Udemy Python3 +] 9. Tout d'abord, imprimez avec print
[Introduction à l'application Udemy Python3 +] 54. Qu'est-ce que Docstrings?
[Introduction à Udemy Python3 + Application] 14. Substitution de caractères 15.f-strings
[Introduction à l'application Udemy Python3 +] 66. Création de votre propre exception
[Introduction à Udemy Python3 + Application] 53. Dictionnaire des arguments de mots-clés
[Introduction à Udemy Python3 + Application] 27. Comment utiliser le dictionnaire
[Introduction à Udemy Python3 + Application] 30. Comment utiliser l'ensemble
[Introduction à Udemy Python3 + Application] 52. Tapple d'arguments positionnels
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction à l'application Udemy Python3 +] 32.1 Lorsqu'une ligne devient longue
[Introduction à Udemy Python3 + Application] 51. Soyez prudent avec les arguments par défaut
[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)
Introduction au langage Python
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
Introduction à OpenCV (python) - (2)
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
[Introduction à Udemy Python3 + Application] 37. Technique pour juger qu'il n'y a pas de valeur
Introduction à Python Django (2) Win