pagetakaBlog

最近リフォームと鳥取県日南町の記事多め。写真、PC、ネット等の話題も

Python修行:手続き型、関数型、オブジェクト指向で同じことを書いてみた…爺にはムズイ。Microsoft:Copilotに教えてもらいながら…。

【Python: スクリプト、三種類書き分けの結果】
【Python: スクリプト、三種類書き分けの結果】

Python修行、今回は、手続き型(命令型)、関数型、オブジェクト指向の三種類を、ひとつのスクリプトで書いてみました。一応できたのを、Microsoft:copilotにチェックしてもらったら、修正がありましたので、その部分はコメントアウトするなどしています。

Python:爺には、三つの型に書き分けるのは、しんどいです(悲)。

Python修行を爺がしてても、短期記憶がすぐ消えるので、ブログに書いて備忘録にしてます。勝手にお使いいただいて一向にかまいませぬが、そもそも爺がよくわかってないので、みなさまの自己責任にて、お願いいたします。

今回のスクリプトは、Pythonが動く環境で実行したら、ターミナルにプリント文が表示される予定(VSCode)です。

スクリプト:手続き型、関数型、オブジェクト指向

Microsoft:Copilot に直してもらったところはコメントアウトするなどしてます。ご参考になれば幸いです。作法違い、齟齬などお気づきでしたら、優し目に教えてください。

a = 10
data = [1, 2, 3]

# procedural_script
# x = 0 #Copilotに不要と指摘された
x = [a_data * a for a_data in data]
print(f'procedural:{x}')


# functional_script
def calc_data(a, data):
    # x = 0 #Copilotに不要と指摘された
    x = [a_data * a for a_data in data]
    return x

x = calc_data(a, data)
print(f'functional:{x}')


# objective_script
class Calc:
    def __init__(self, a, data):
        self.a = a
        self.d = data
        # self.x = None #Copilotに不要と指摘された
    
    def ten_times(self):
        # self.x = [a_data * self.a for a_data in self.d]
        # return self.x
        # 上の二行は、Copilotに下の様に書き直された
        return [a_data * self.a for a_data in self.d]

# x = 0 #Copilotに不要と指摘された
x1 = Calc(a, data)
x2 = x1.ten_times()
print(f'objective:{x2}')