[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes

Dans la continuité de [Introduction to Data Scientists] Bases de Python ♬ Fonctions et fonctions anonymes, etc., nous parlerons des fonctions et des classes. 【Mise en garde】 ["Cours de formation de scientifique des données à l'Université de Tokyo"](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3 % 81% AE% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 82% B5% E3% 82% A4% E3% 82% A8% E3% 83% B3% E3% 83 % 86% E3% 82% A3% E3% 82% B9% E3% 83% 88% E8% 82% B2% E6% 88% 90% E8% AC% 9B% E5% BA% A7-Python% E3% 81 % A7% E6% 89% 8B% E3% 82% 92% E5% 8B% 95% E3% 81% 8B% E3% 81% 97% E3% 81% A6% E5% AD% A6% E3% 81% B6 % E3% 83% 87% E2% 80% 95% E3% 82% BF% E5% 88% 86% E6% 9E% 90-% E5% A1% 9A% E6% 9C% AC% E9% 82% A6% Je vais lire E5% B0% 8A / dp / 4839965250 / ref = tmm_pap_swatch_0? _ Encoding = UTF8 & qid = & sr =) et résumer les parties que j'ai des doutes ou que je trouve utiles. Par conséquent, je pense que le synopsis sera simple, mais veuillez le lire en pensant que le contenu n'a rien à voir avec ce livre.

Balançoire avant

Ce chapitre se concentre sur le mécanisme des appels de fonctions python et les différences entre la notation de classe et les fonctions. Pour le mécanisme d'appel de fonction, reportez-vous à ce qui suit. 【référence】 Appel de la fonction de module @PyQ

Chapitre1-2 Principes de base de Python

1-2-6 Classe et instance

Créez une instance de la classe. Nous laisserons un peu ce livre pour montrer les similitudes entre les appels de fonction, les déclarations de classe et l'exécution des instances.

Appel de fonction

Les fonctions sont parfois utilisées dans une PG, mais lorsque vous essayez d'écrire une PG compliquée, les fonctions sont enregistrées et utilisées dans une structure de type package avec une structure de répertoires structurée. Dans ce cas, python a un mécanisme important. Autrement dit, si vous exécutez le code suivant avec > python calc_add.py, il fonctionnera dans l'ordre suivant. ① Deux définitions de fonction sont faites ② Le nom du module calc_add est assigné à __name__ ③ L'instruction print est exécutée ④ L'instruction ʻif est True, et les deux instructions print` suivantes sont exécutées.

calc_add.py


def calc_add(a, b):
    return a + b
    
def calc_multi(a, b):
    return a * b
       
print('__name__:', __name__)

if __name__ == '__main__':        
    print(calc_add(5,3))
    print(calc_multi(5, 3))

résultat

__name__: __main__
8
15

Exécuter à partir d'un autre code main.py

Dans ce cas, exécutez > python main.py (1) Lire deux fonctions calc_add, calc_multi de calc_add.py par la première instruction de déclaration. À ce moment, comme vous pouvez le voir dans la sortie, le calc_add.py ci-dessus est exécuté, l'instruction print est exécutée et __name__: calc_add est sorti. L'instruction ʻIf est False (__ name__ = calc_add), donc elle ne sera pas exécutée ② Ensuite, l'instruction d'impression de main.py est exécutée. ③ Puisque l'instruction ʻif de main.py est True, les deux instructions ʻ printsuivantes sont exécutées. Avec ce mécanisme, vous pouvez appeler une fonction et l'utiliser. ④ Par conséquent, il est nécessaire d'inclure la notation ʻif __name__ == '__ main __':. Cependant, ce n'est pas essentiel lors de l'appel et de son utilisation.

main.py


from calc_add import calc_add, calc_multi

print('__name__2:', __name__)

if __name__ == '__main__':   
    print(calc_add(5,3))
    print(calc_multi(5, 3))

résultat

__name__: calc_add
__name__2: __main__
8
15

** Remarque) print ('__ name__:', __name __) est inclus pour expliquer le mécanisme et n'est généralement pas nécessaire ** class La classe ressemble à la fonction. Cependant, déclarez class. Ensuite, comme vous pouvez le voir dans l'instruction if, la classe définit l'instance, puis appelle et utilise la fonction définie dans la classe. Ce mécanisme est appelé orienté objet. Autrement dit, c'est un mécanisme qui génère de nombreuses instances à partir de la classe et les exécute. Les caractéristiques de la définition de classe sont les suivantes. ① Déclarer la classe (2) Définissez le constructeur def __init __ (self, x, y):. La variable self est obligatoire et définie (la variable self est spéciale, mais il m'a fallu un certain temps pour penser que ce n'était qu'une des variables). Les arguments x et y définissent ce qui est nécessaire à un moment donné. 【référence】 Qu'est-ce que Python self? Explication de l'utilisation et des précautions

À propos de soi
・ Self n'est pas décrit comme un argument lors de la déclaration d'une instance
・ Self est une variable de classe
・ Peut également être utilisé pour l'héritage de classe
-Si la variable de classe et la variable d'instance ont des valeurs, la variable d'instance a la priorité pour référence.

③ Constructeur def __init __ (self, x, y): est le code qui fonctionne en premier lorsque l'instance de la classe est définie. ④ Définissez les autres fonctions nécessaires. ⑤ Exécutez le traitement nécessaire comme ʻinstance.calc_add () ⑥ ʻif __name__ == '__ main __':est écrit pour la même raison que la fonction, mais ce n'est pas essentiel lors de l'appel et de son utilisation, tant de classes n'ont pas cette instruction if ou une instruction d'exécution. ** Remarque) print ('__ name__:', __name __) est inclus pour expliquer le mécanisme et n'est généralement pas nécessaire **

calc_class.py


class MyCalcClass:
    def __init__(self,x,y):
        self.x = x
        self.y = y
        
    def calc_add1(self, a, b):
        return a + b

    def calc_add2(self):
        return self.x + self.y
  
    def calc_multi(self, a, b):
        return a * b
        
print('__name__:', __name__)
if __name__ == '__main__':        
    instance_1 = MyCalcClass(1,2)
    instance_2 = MyCalcClass(5,10)
    print(instance_1.calc_add1(5,3))
    print(instance_1.calc_add2())
    print(instance_1.calc_multi(5, 3))
    instance_1.calc_print(5)

>python calc_class.py résultat C'est comme suit, mais vous pouvez voir que le résultat est calculé en fonction de la valeur initiale de instance1. Si la partie de l'instruction if est supprimée, seul __name__: __main__ est affiché.

__name__: __main__
8
3
15
data:5:Valeur de y 2

Exécuter à partir d'un autre code main.py

main_class.py


from calc_class import MyCalcClass

print('__name__2:', __name__)

if __name__ == '__main__':
    instance_1 = MyCalcClass(1,2)
    instance_2 = MyCalcClass(5,10)
    print(instance_1.calc_add1(5,3))
    print(instance_1.calc_add2())
    print(instance_1.calc_multi(5, 3))
    instance_1.calc_print(5)

résultat >python main_class.py Bien sûr, le résultat est le même que ↑. Cependant, comme pour la fonction, __name__: calc_class est affiché. Autrement dit, le nom du fichier appelé est entré dans «name», et «main» est entré dans le cas de lui-même.

__name__: calc_class
__name__2: __main__
8
3
15
data:5:Valeur de y 2

Résumé

・ J'ai comparé l'appel de fonction et la classe -Définir une classe, l'appeler et exécuter l'instance

・ C'est juste avant d'écrire du code python général ・ Ce livre met fin aux bases de python dans cette section, mais les parties manquantes seront complétées dans les sections futures (dans un sens, ce livre continuera à expliquer le code en utilisant diverses bibliothèques de python).

Recommended Posts

[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
[Introduction aux Data Scientists] Bases de Python ♬ Fonctions et fonctions anonymes, etc.
[Introduction au Data Scientist] Bases de Python ♬
[Introduction to Data Scientists] Bases de Python ♬ Branchements conditionnels et boucles
[Introduction aux data scientists] Bases de la probabilité et des statistiques ♬ Variable de probabilité / probabilité et distribution de probabilité
# 4 [python] Bases des fonctions
[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Scipy
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Pandas
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessin de graphes ♬ Bases de Matplotlib
Liste des bibliothèques Python pour les data scientists et les data ingénieurs
[Introduction à cx_Oracle] (Partie 6) Mappage des types de données DB et Python
[Introduction aux Data Scientists] Statistiques descriptives et analyse de régression simple ♬
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction to Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques ♬ Construction d'environnement
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
[Introduction à Python] Résumé des fonctions et méthodes qui apparaissent fréquemment en Python [Format du problème]
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Introduction à Python] Combinaison des données Nikkei Average et NY Dow CSV
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie1-
Introduction aux bases de Python de l'apprentissage automatique (apprentissage non supervisé / analyse principale)
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie2-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie4-
[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 à TensorFlow - Résumé de quatre règles et fonctions mathématiques de base
[Introduction à cx_Oracle] (Partie 2) Principes de base de la connexion et de la déconnexion à Oracle Database
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie3-
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
Lier des méthodes aux classes et instances Python
[Introduction à l'application Udemy Python3 +] 55. Fonctions intégrées
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
Compressez les données python et écrivez sur sqlite
Introduction facile de la série python3 et d'OpenCV3
Les bases de Python ①
# Bases de Python (fonctions)
bases de python: fonctions
Introduction de Python
[Introduction à Udemy Python3 + Application] 26. Copie du dictionnaire
[Introduction à Udemy Python3 + Application] 19. Copie de la liste
[Cx_Oracle Primer] (Partie 3) Bases de la navigation dans les tableaux
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
[Introduction à Python] Comment gérer les données au format JSON
[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
[Python] Chapitre 02-01 Bases des programmes Python (opérations et variables)
[Introduction à cx_Oracle] (5e) Gestion des données japonaises
Liste de code Python à déplacer et à mémoriser
[Hikari-Python] Chapitre 09-01 Classes (Bases des objets)
fonctions cv2 et types de données (liaison python OpenCV)
[Introduction à Python] Utilisation de base des expressions lambda
[Python] De l'analyse morphologique des données CSV à la sortie CSV et à l'affichage graphique [GiNZA]
[Introduction à cx_Oracle] (Partie 9) Mappage des types de données DB et Python (version 8 ou ultérieure)
Cours de base sur Python Traitement CSV (fonctions et classes n ° 1 CSV est lu et écrit)
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Principes de base du grattage Python