[PYTHON] [Numpy / pandas / matplotlib Exercice 01] Mettre à jour le modèle

En premier

Avant de procéder à l'exercice dans le titre, je souhaite apprendre les bases de python, donc je pense que le template créé précédent sera modifié et utilisé. Je ne pense pas qu'il soit nécessaire de le faire de cette façon, mais je continuerai avec l'esprit de m'en souvenir au fur et à mesure que je l'utilise (je ne me souviens pas si je ne l'utilise pas). Veuillez préciser. .. ..

C'est une méthode personnelle, mais si vous étudiez, je pense qu'il vaut mieux penser à utiliser les connaissances que vous avez apprises de force que Kodawaru pour écrire du beau code. Je vais apprendre ce qui ne va pas en échouant.

Modèle

Ajouter une classe

sample.py


# -*- coding:utf-8 -*-

import logging
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib	### [Support japonais]

#Spécifiez le format du journal
# %(asctime)s :Une représentation lisible par l'homme de l'heure à laquelle le LogRecord a été généré.
# %(funcName)s :Le nom de la fonction qui contient l'appel de journalisation
# %(levelname)s :Niveau de journalisation des caractères pour les messages
# %(lineno)d :Numéro de la ligne source sur laquelle l'appel de journalisation a été émis
# %(message)s : msg %Message de journal demandé en tant qu'args
fomatter = logging.Formatter('%(asctime)s:%(funcName)s:%(levelname)s:%(lineno)d:\n%(message)s')

#Paramètres de l'enregistreur(Niveau de journalisation INFO)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

#Paramètres du gestionnaire(Modifier le fichier de sortie/Réglage du niveau de journal/Paramètres de format de journal)
handler = logging.FileHandler('handler_log.log')
handler.setLevel(logging.INFO)
handler.setFormatter(fomatter)

logger.addHandler(handler)

class SampleClass(object) :
	def SampleFunc(self) :
		try :
			logger.info("Hello World")

		#Gestion des exceptions
		except :
			logger.exception("", exc_info=True)

if __name__ == '__main__' :

	try :
		
		main_Class = SampleClass()
		main_Class.SampleFunc()
		
	#Gestion des exceptions
	except :
		logger.exception("", exc_info=True)

Résultat d'exécution

2019-11-22 16:54:28,955:SampleFunc:INFO:31:
Hello World

Ajout de l'initialisation de la classe

sample.py


(Omis)
class SampleClass(object) :
	def __init__(self) :
		try :
			logger.info("Initialisation de classe")

		#Gestion des exceptions
		except :
			logger.exception("", exc_info=True)
(Omis)

Résultat d'exécution

2019-11-22 17:00:41,888:__init__:INFO:31:
Initialisation de classe
2019-11-22 17:00:41,889:SampleFunc:INFO:39:
Hello World

Initialisation des arguments de fonction en classe et appel de fonction en classe

sample.py


(Omis)
class SampleClass(object) :
	def __init__(self, argv="sample_01") :
		try :
			self.argv = argv
			logger.info("Initialisation de classe: " + argv)

		#Gestion des exceptions
		except :
			logger.exception("", exc_info=True)
	
	def SampleFunc(self) :
		try :
			logger.info("Hello World : " + self.argv)
			self.SampleFunc02()

		#Gestion des exceptions
		except :
			logger.exception("", exc_info=True)

	def SampleFunc02(self, argv02="InitSample02") :
		try :
			logger.info("SampleFunc02 : " + argv02)

		#Gestion des exceptions
		except :
			logger.exception("", exc_info=True)
(Omis)

Résultat d'exécution

2019-11-22 17:12:43,213:__init__:INFO:32:
Initialisation de classe: sample_01
2019-11-22 17:12:43,213:SampleFunc:INFO:40:
Hello World : sample_01
2019-11-22 17:12:43,213:SampleFunc02:INFO:49:
SampleFunc02 : InitSample02

Destructeur

Ce destructeur a été difficile à comprendre depuis que j'étudiais le C ++. .. .. Pour le moment, je ferai beaucoup d'erreurs et je prendrai une position pour me souvenir en faisant des erreurs, alors je vais essayer de l'intégrer de force.

sample.py


(Omis)
def __del__(self) :
	try :
		print('This Class is deleted')

	#Gestion des exceptions
	except :
		logger.exception("", exc_info=True)
(Omis)

Résultat d'exécution

réduction

Héritage de classe

Vous pouvez utiliser l'héritage de la même manière, mais je le ferai à ma manière car je suis autodidacte.

sample.py


(Omis)
class ChildClass01(SampleClass) : 
	pass

class ChildClass02(SampleClass) : 
	def ChildClass02Func(self) :
		try :
			logger.info("ChildClass02Func Hello World : " + self.argv)

		#Gestion des exceptions
		except :
			logger.exception("", exc_info=True)
(Omis)
if __name__ == '__main__' :

	try :
		
		#Créer des variables de classe(À ce point__init__La fonction est appelée)
		main_Class = SampleClass()
		main_Class1 = ChildClass01("★")
		main_Class2 = ChildClass02("■")
		#Appeler une fonction de classe
		main_Class.SampleFunc()
		main_Class1.SampleFunc()
		main_Class2.SampleFunc()
		main_Class2.ChildClass02Func()
(Omis)

Résultat d'exécution

2019-11-22 17:37:03,556:__init__:INFO:32:
Initialisation de classe: sample_01
2019-11-22 17:37:03,556:__init__:INFO:32:
Initialisation de classe: ★
2019-11-22 17:37:03,556:__init__:INFO:32:
Initialisation de classe: ■
2019-11-22 17:37:03,556:SampleFunc:INFO:40:
Hello World : sample_01
2019-11-22 17:37:03,556:SampleFunc02:INFO:49:
SampleFunc02 : test
2019-11-22 17:37:03,556:SampleFunc:INFO:40:
Hello World : ★
2019-11-22 17:37:03,557:SampleFunc02:INFO:49:
SampleFunc02 : test
2019-11-22 17:37:03,557:SampleFunc:INFO:40:
Hello World : ■
2019-11-22 17:37:03,557:SampleFunc02:INFO:49:
SampleFunc02 : test
2019-11-22 17:37:03,557:ChildClass02Func:INFO:69:
ChildClass02Func Hello World : ■

finalement

Il y a beaucoup d'autres choses que j'aimerais essayer, mais comme j'ai dépassé la capacité de mon cerveau, j'aimerais écrire de force un programme en utilisant ce modèle (tout en l'examinant comme il convient) la prochaine fois.

Recommended Posts

[Numpy / pandas / matplotlib Exercice 01] Mettre à jour le modèle
[Exercice Numpy / pandas / matplotlib 01]
Installez Python3, numpy, pandas, matplotlib, etc. sous Windows
Introduction à Python numpy pandas matplotlib (pour ~ B3 ~ part2)
Python Basic --Pandas, Numpy-
pandas Matplotlib Résumé par utilisation
Construction de l'environnement de NumPy et matplotlib