Pythonでの関数のオーバーロード

私はC ++を学んでいるので、C ++プログラミングの複数のコンストラクターに問題はありません。 
後で考えてみると、Pythonにはswitchステートメントがないことに突然気づきました。柔軟性を十分に発揮
させるために、コードを簡潔にするために同じ代わりに辞書を使用してください 。コンストラクターは1つだけです。最長のパラメーターリストは他のコンストラクターをカバーします。 
可変長パラメーターが必要な場合、デフォルト値を使用して数を達成します。つまり、同じ名前の関数を1つだけ使用するだけで十分です。Pythonコードは非常に簡潔です 
が、欠点は複数のオーバーロードされた関数が定義されていても、コンパイル中に呼び出しはありません。エラーは報告されません。呼び出しパラメーターが少ない場合にのみ、関数がオーバーロードされたときに報告されます。 
 


class stu(object):
    print ('stu')

    #默认值构造函数
    def __init__(self, stuID,stuType='Primary'):
        self.ID=stuID
        self.Type=stuType

    def display(self):
        print(self.ID,self.Type)

#使用默认值实现构造函数的多态
stu1=stu(100)
stu2=stu(200,"midschool")
#stu.display()  #不能直接调用类的一般方法
stu1.display()
stu2.display()

 

おすすめ

転載: blog.csdn.net/sichuanpb/article/details/112692868