多重継承を学び始めましたが、親クラスからいくつかのAtribute値を取得できないようです。
私には3つのクラスがあり、そのうちの1つは他の2つを継承しています。「preco_bilhete」属性は印刷できますが、「nome」、「apelido」、「codigo_voo」属性値は印刷できません。
コードの一部がポルトガル語であるため、申し訳ありません。
class Pessoa():
def __init__(self, nome, apelido, idade, cc, nacionalidade):
self.nome = nome
self.apelido = apelido
self.idade = idade
self.cartaocidadao = cc
self.nacionalidade = nacionalidade
class Voo():
def __init__(self, companhia, cod_voo, cod_aviao, data_partida, horario_partida, data_chegada, horario_chegada, aeroporto_partida, terminal_aeroporto_partida,
aeroporto_chegada, terminal_aeroporto_chegada, tipo_de_bagagem):
self.companhia_aerea = companhia
self.codigo_aviao = cod_aviao
self.codigo_voo = cod_voo
seld.data_voo_partida = data_partida
self.horario_partida = horario_partida
seld.data_voo_chegada = data_chegada
self.horario_chegada = horario_chegada
self.aeroporto_partida = aeroporto_partida
self.terminal_aeroporto_partida = terminal_aeroporto_partida
self.aeroporto_chegada = aeroporto_chegada
self.terminal_aeroporto_chegada = terminal_aeroporto_chegada
self.tipo_de_bagagem = tipo_de_bagagem
class Comprar_Bilhete(Pessoa, Voo):
def __init__(self, nome, apelido, idade, cc, nacionalidade, companhia, cod_voo, cod_aviao, data_partida, horario_partida, data_chegada, horario_chegada,
aeroporto_partida, terminal_aeroporto_partida, aeroporto_chegada, terminal_aeroporto_chegada, tipo_de_bagagem, preco):
self.preco_bilhete = preco
cliente1 = Comprar_Bilhete("Pedro", "Figueiredo", 49, 9876543, "Portuguesa", "Easyjet", "EJ1011", "FT4537", "27-08-2020", "23:05", "28-08-2020", "01:45",
"Humberto Delgado - Lisboa - PT", "Terminal 1", "Stansted - Hertfordshire - UK", "Terminal 3", "Bagagem de Porão + Mala de Mão", 275.48)
print(cliente1.preco_bilhete)
print(cliente1.nome)
print(cliente1.apelido)
print(cliente1.codigo_voo)
多重継承なので、ここでは、クラスComprar_Bilhete(Pessoa, Voo)
は2つのクラスPessoa
とを継承していますVoo
。あるクラスが別のクラスを継承すると、その変数と関数も継承します(デフォルトではpublic
、両方のアクセスレベルがPythonであるため)。
変数の値のみを出力できます。preco_bilhete
これは、基本クラスで初期化される唯一の変数であるためですComprar_Bilhete
。他の3つの派生変数は、IEの印刷上の値を取得できるようにするためにnome
、apelido
そしてcodigo_voo
、あなたは同様にそれらを初期化するために値を渡す必要があります。
これにより、発生しているエラーが修正されたようです。
class Comprar_Bilhete(Pessoa, Voo):
def __init__(self, nome, apelido, idade, cc, nacionalidade, companhia, cod_voo, cod_aviao, data_partida, horario_partida, data_chegada, horario_chegada,
aeroporto_partida, terminal_aeroporto_partida, aeroporto_chegada, terminal_aeroporto_chegada, tipo_de_bagagem, preco):
self.preco_bilhete = preco
self.nome = nome
self.apelido =apelido
self.codigo_voo = cod_voo
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加