Comprendre les classes python Struggle (2) Work Ce n'est pas tout, non? _ À propos de l'héritage de classe

Synopsis jusqu'à la dernière fois

Pour le moment, j'ai pu effacer le codage qui profitait des avantages de la classe et de l'approche du problème (ici, le traitement du formulaire d'approbation), et heureusement, j'ai pu indiquer la méthode de codage pour la classe. Cependant, en tant que membre comptable, j'ai le désir que la personne en charge des documents d'approbation fasse plus de travail.

L'histoire du traitement continu

La dernière fois, j'ai pu incarner le traitement du "formulaire d'approbation nouvellement diffusé". Cependant, le traitement des «immobilisations qui ont déjà été retournées et qui n'ont pas encore commencé à être utilisées» est bâclé. Il n'y aura pas de nouveaux documents d'approbation pour cette "immobilisation qui a déjà été retournée et qui n'a pas encore commencé à être utilisée". Par conséquent, vous devez envoyer un courriel à la personne en charge pour voir si vous avez des soins continus et commencer à les utiliser tous les mois.

Nouveau travail

Le nouveau travail qui se produira ici est d'envoyer des e-mails réguliers aux projets qui n'ont pas commencé à utiliser le service la dernière fois. Nous essaierons d'y parvenir au moyen de l'héritage de classe. Le codage précédent était un processus pour les «documents d'approbation nouvellement à venir».

Code nouvellement écrit

qiita.rb



import openpyxl
import datetime



class NewAssets():
    def __init__(self,apdnum,apdmen,unitname,assetname,money):
        self.apdnum=apdnum
        self.apdmen=apdmen
        self.unitname=unitname
        self.assetname=assetname
        self.money=money

    #Fonction pour joindre un PDF aux e-mails Travail pour récupérer les adresses e-mail de destination auprès du responsable et du service en charge
    def make_mail(self):
        mail=("{}{}Je vous remercie pour votre travail acharné. Je suis en charge des immobilisations au sein du service comptable. N ° d'homologation{}de{}Sur\
            \n Veuillez nous parler de la situation ce mois-ci si vous avez commencé à l'utiliser. De plus, s'il y a une facture, vous pouvez également joindre la facture\
            \n Merci.".format(self.unitname,self.apdmen,self.apdnum,self.assetname))
        print(mail)

    def insert_excel(self):
        wb=openpyxl.load_workbook("../data/Commander le tableau de gestion des immobilisations.xlsx")
        sh=wb.active
        for dt_row in range(2,50):
            if sh["A"+str(dt_row)].value!=None:
                continue
            else:
                sh["A"+str(dt_row)].value=self.apdnum
                sh["B"+str(dt_row)].value=self.unitname
                sh["C"+str(dt_row)].value=self.apdmen
                sh["D"+str(dt_row)].value=self.assetname
                sh["E"+str(dt_row)].value=self.money
                break
        wb.save("../data/Commander le tableau de gestion des immobilisations_{}_Créer un johannesrome.xlsx".format(datetime.date.today()))
#Le code qui correspond à la partie principale que j'ai écrite la dernière fois
#Sous le nouveau code
#New_Achat, qui est une sous-classe de la classe Actifs_Créer des actifs et consommer comme attribut(Dépense)Ajouter

class BuyingAssets(NewAssets):
    def __init__(self,apdnum,apdmen,unitname,assetname,money,consume):
        super().__init__(apdnum,apdmen,unitname,assetname,money)
        self.consume=consume
    def make_buying_mail(self):
        if self.consume=="Pas encore":    
            print("{}de{}様お疲れ様です。経理部de固定資産担当です。先月未使用であった稟議書No{}de{}Sur\
            \n Veuillez nous parler de la situation ce mois-ci si vous avez commencé à l'utiliser. De plus, s'il y a une facture, vous pouvez également joindre la facture\
            \n Merci.".format(self.unitname,self.apdmen,self.apdnum,self.assetname))
            sh["G"+str(dt_row)].value="✔"
        else:
            None
        


#Code de sortie ci-dessous
wb=openpyxl.load_workbook("../data/Commander le tableau de gestion des immobilisations_Créer un johannesrome.xlsx")
sh=wb.active
for dt_row in range(2,50):
    apdnum=sh["A"+str(dt_row)].value
    unitname=sh["B"+str(dt_row)].value
    apdmen=sh["C"+str(dt_row)].value
    assetname=sh["D"+str(dt_row)].value
    money=sh["E"+str(dt_row)].value
    consume=sh["F"+str(dt_row)].value
    m=Buying_Assets(apdnum,apdmen,unitname,assetname,money,consume)
    m.make_buying_mail()
wb.save("../data/Commander le tableau de gestion des immobilisations_Créer un johannesrome.xlsx")

La méthode de codage que vous avez indiquée la dernière fois a été corrigée Je viens de créer Buyin_Assets en tant que sous-classe en tant qu'héritage de classe et j'ai ajouté consommer en tant qu'attribut Et, en tant que programme, je veux que vous fassiez cette fois-ci, une fonction pour créer un texte d'email des actifs inutilisés et pour mettre ✔ dans Excel après sa création.

Cliquez ici pour Excel avant l'exécution assets_mail01.png

Et quand tu cours

assets_mail02.png

Coché (∩´∀ `) ∩

mail g.png

Ça s'est bien passé (◠‿◠)

Résumé

Je n'ai pas utilisé les méthodes et les données avant l'héritage cette fois-ci, alors j'ai pensé que ce serait une mauvaise idée en tant que thème et approche de réglage. Plus personnellement, j'avais l'image que la méthode avant l'héritage était également utilisée.

Cependant, pendant que je codais, j'ai remarqué que le mérite de la classe était que j'avais remarqué qu'il était possible de passer au codage qui utilise les attributs de la classe au milieu du codage qui a ouvert openpyxl et l'a traité à def make_buying_mail (self):. J? ai compris. Je veux utiliser de plus en plus la classe et m'y habituer rapidement.

De plus, si vous avez des opinions comme celle-là, vous pouvez profiter des avantages du cours avec un tel thème, veuillez commenter! (`・ Ω ・ ´)

Recommended Posts

Comprendre les classes python Struggle (2) Work Ce n'est pas tout, non? _ À propos de l'héritage de classe
À propos de python, classe
À propos de l'héritage Python
[Python] Héritage de classe (super)
[Python] Héritage de classe, remplacement
À propos de __all__ en python
À propos des objets et des classes Python
Paiza Python Primer 8: Comprendre les classes
Comprendre la classe python Struggle (1) Déplaçons-la pour le moment