我如何使用多重继承获取一些 Parent Class 属性值
How can i grab some Parent Class Atribute values using Multiple Inheritance
我开始学习多重继承,但我似乎无法从父级获取一些属性值 类。
我有 3 个 类,其中一个继承了另外两个。
我可以打印“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)
因为是多重继承,这里,你的classComprar_Bilhete(Pessoa, Voo)
继承了2classesPessoa
和Voo
。当一个 class 继承另一个 class 时,它也继承它的变量和函数(因为默认情况下两者的访问级别是 python 中的 public
)。
您只能打印变量的值:preco_bilhete
,因为它是您的基础 class - Comprar_Bilhete
中唯一被初始化的变量。为了能够在打印其他 3 个派生变量时获得值,即 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
我开始学习多重继承,但我似乎无法从父级获取一些属性值 类。
我有 3 个 类,其中一个继承了另外两个。 我可以打印“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)
因为是多重继承,这里,你的classComprar_Bilhete(Pessoa, Voo)
继承了2classesPessoa
和Voo
。当一个 class 继承另一个 class 时,它也继承它的变量和函数(因为默认情况下两者的访问级别是 python 中的 public
)。
您只能打印变量的值:preco_bilhete
,因为它是您的基础 class - Comprar_Bilhete
中唯一被初始化的变量。为了能够在打印其他 3 个派生变量时获得值,即 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