1.プロパティの継承のコードを探します。
クラスのユーザー: デフ__init __(自己、名前、年齢): self.name = 名前 self.age = 年齢の クラスのUser1(ユーザー): デフ__init __(自己、氏名、年齢、身長、体重): self.height = 高さ 自己。重量 = 重量 #此处像继承父类的名和年齢 スーパー().__のinit __(名前、年齢) USER1 = User1の(' トーマス'、38、180、80 ) 印刷(user1.height) プリント(user1.weight) 印刷(user1.name) プリント(user1.age) #180 #80 #トーマス #38
注1:もちろん、このような問題を少し書いていないが、問題は、プロパティ名と年齢も事の中で親クラスに記載している必要があるとき、我々はサブクラスに継承されていることがありますか?少し問題を書きます。
注2:私たちは、パラメータNの親クラスを持っている場合は、すべての時間はあなたがそうで親クラスのパラメータはその辞書、文字列が存在する場合、磨耗、およびときパラメータなしで親クラスを継承します。どのように対処するには?
注3:実際には、ここで我々は*引数を使用して、**魔法の効果の可変長パラメータをkwargsから。私たちは、親クラスは、パラメータのN個の異なる種類を持って定義し、次に、どのようにすることができますシンプルなアプリケーションを見てください。
コードを変更して2
クラスのユーザー: デフ__init __(自己、名前、年齢、住所 = ' 青島'、dictsが= { ' キー':' 値' }): self.name = 名前 self.age = 年齢 self.address = アドレス self.dicts = dicts クラスのUser1(ユーザー): デフ__init __(自己、身長、体重、 * argsを、** kwargsから): スーパー().__のinit __( * argsを、** kwargsから) self.height = 高さ self.weight= 重量 USER1 =ユーザ1(180、80、' トーマス'、38 ) プリント(user1.height) プリント(user1.weight) プリント(user1.name) プリント(user1.age) プリント(user1.address) プリント(USER1。 dicts) #180 #80 #トーマス #38 #青島 #{ ' キー':' 値' }
注1:牛のX、右?実際には、我々は可変長パラメータを持つ親クラスの属性パラメータの値が取得するものの具体的な説明を持っていないので、多くのコードの速記の量:覚えておいてください:スーパーを().__のinit __(* argsを、** kwargsから)
注2:しかし、少し注意。最後に書き込まれる*のArgsと** kwargsから。そして、サブクラスのコンストラクタでも、これらの二つのものの上に書きます。