PYTHON's Fantasy Adventure 21: No dejes al oficial invitado, te presentaré a alguien

PYTHON's Fantasy Adventure 21: No dejes al oficial invitado, te presentaré a alguien

¡La esencia del lenguaje de PYTHON está aquí! Oficial invitado, no vayas, 10 minutos, ¡te dejo aprender PYTHON!
La lección 21 es objetiva, no vayas, te presentaré un objeto,
no arte, no vida.


Diez minutos al día, ¡enamórate de PYTHON!


Prefacio

A través de lo que hemos aprendido en la última lección, obtuvimos una comprensión preliminar de la orientación a objetos, ¡ahora aplicamos un pequeño ejemplo para profundizar nuestra comprensión!

一 、 ¿Quién soy yo?

El código es el siguiente, ¡muy simple!

class LONG_ZHI_ZI:

    def __init__(self,nationality,region):
        self.nationality = nationality
        self.region = region
        print('个人信息正在录入中……')

    def born(self):
        print('龙之子生在%s。'%(self.nationality))

    def live(self):
        print('龙之子在%s。'%(self.region))
    
    # 接下来新建方法,调用上面的两个方法(注:方法名可自定义)。
    def life(self):
        self.born()
        self.live()

tommi_wei = LONG_ZHI_ZI('CHINA', 'NANJING')

tommi_wei.life()
# 调用方法后,程序运行方法中的代码(即依次调用方法`born`和`live`)。
tommi_wei.born()
tommi_wei.live()

Si está interesado, ¡puede ejecutar el código usted mismo! ¡Vea si el resultado es el mismo que cree!

Esto es solo un aperitivo para todos, ¡el siguiente programa es más interesante!
Ahora vamos a crear un robot, T800, espero que pueda unirse a nosotros en una aventura de fantasía ~

class T_800:
    def __init__(self):
        self.robot_name = input('MASTER你好。我来自另一个星球,你能告诉我叫什么名字?')
        self.master = input('我叫小鹏鹏,你可以叫我任何你想叫的名字')
        print('你好%s,我叫%s。很开心,遇见你~'%(self.master,self.robot_name))
    
    def say_wish(self):
        wish = input('说说你让我来地球的目的吧:')
        print(self.master+'的目的是:')
        # 这里也可以用字符串的格式化,不过,用循环语句的话,之后改复述次数会方便些。
        for i in range(3):
            print(wish)

Arnold_Schwarzenegger = T_800()
Arnold_Schwarzenegger.say_wish()

Los resultados de la operación son los siguientes:

MASTER你好。我来自另一个星球,你能告诉我叫什么名字?terminator                
我叫小鹏鹏,你可以叫我任何你想叫的名字Tommi_Wei
你好Tommi_Wei,我叫terminator。很开心,遇见你~
说说你让我来地球的目的吧:PYTHON World, i am back!  
Tommi_Wei的目的是:
PYTHON奇 World, i am back!
PYTHON奇 World, i am back!
PYTHON奇 World, i am back!

En segundo lugar, herencia y personalización de clases

1. ¿Heredar la empresa familiar?

Aparte de heredar más de una docena de suites, más de 50 acres de tierra y algunas minas de carbón, ¿qué más tiene? ¿Qué otra cosa? Entonces, ¡no tienes más remedio que triunfar!
Bien, volvamos a los negocios. Ahora hablemos de lo que es la herencia. Esto no es heredar propiedad familiar. Ja ja.
Si sus amigos extranjeros le preguntan ¿cuál es la relación entre los taiwaneses y los chinos? ¿Cómo respondes?
Xiaopengpeng dirá que Taiwán es una parte inalienable del territorio de China. Las personas nacidas allí se llaman taiwanesas y las nacidas en Beijing se llaman beijingers. Pero en el análisis final, ¡todos son chinos!
¡derecho! Esto es herencia, si comprendes esta oración, aprenderás a heredar. Todo el mundo come con palillos, todo el mundo habla chino, espera, ¡estos son los atributos del pueblo chino!

Para que entiendas este concepto más claramente, ¡Xiaopengpeng también está luchando hoy!
Los taiwaneses pertenecen a los chinos, lo que demuestra que el concepto de chino envuelve a los taiwaneses ¡Las características que poseen los taiwaneses también las poseen los chinos! En el mundo de PYTHON, son los taiwaneses quienes han heredado los atributos y métodos de los chinos. Después de todo, los taiwaneses son solo un subconjunto, y hay personas de Beijing, Tianjin, Hunan, etc.
En palabras de la clase ahora, es decir, los taiwaneses son la subclase y los chinos son los padres.

2. ¿Ropa personalizada?

¿Va al centro comercial para personalizar la ropa para usted? Jaja, no te preocupes, ¡sigamos estudiando!

Dado que los taiwaneses tienen los mismos atributos de cabello negro y piel amarilla que los chinos, tienen la misma forma de hablar chino. Por supuesto, los taiwaneses también tienen su propio producto especial, la piña de Taiwán. (Suponiendo que el continente no tiene uno) Esto es lo que llamamos personalización.
Cuando entendemos los conceptos anteriores, podemos intentar escribir código y pensar en cómo escribirlo.

En tercer lugar, la implementación del código de herencia de la clase.

1. Gramática básica

¡Que todos sientan primero el formato gramatical heredado!

class A(B):

Donde A es el nombre de la clase secundaria y B es el nombre de la clase principal. ¡Tenga en cuenta que todos deben usar el formato chino! No hay mucho que decir, ¡echemos un vistazo al código directamente!

class Chinese:
    eye = 'black'
    speak = 'zhong_guo_hua'

    def eat(self):
        print('吃饭,选择用筷子。')

class Taiwanren():
    pass # pass表示'跳过',不执行其他操作

JAY=Chinese()
print(JAY.speak)
JAY.eat()

Los resultados de la operación son los siguientes:

zhong_guo_hua
吃饭,选择用筷子。

2. Herencia multinivel

Los chinos también son asiáticos, cierto, los asiáticos también son personas terrestres, cierto, las personas terrestres también evolucionaron de animales avanzados, cierto.
Habiendo dicho tanto, quiero que todos entiendan la verdad. ¡Puedes continuar expandiéndote todo el tiempo que quieras!

class Earth_man:
    eye_number = 2

# 中国人继承了地球人
class Chinese(Earth_man):
    eye_color = 'black'

# 台湾人继承了中国人,同时也继承了地球人。
class TAIWANREN(Chinese):
    say = 'zhong_guo_hua'
    

JAY = TAIWANREN()
print(JAY.eye_number)
print(JAY.eye_color)

Los resultados de la operación son los siguientes:

2
black

3. Herencia múltiple

¡Hoy descubriremos la herencia!
Por supuesto, cuando hablamos de una persona, también puede ser una persona mestiza de varios países: el padre es chino y la madre es estadounidense.
¡Dejame darte un ejemplo!

class BABA:
    born_city = 'CHINA'
    EATING    = 'noodles'

    def diet(self):
        print('我们爱吃米饭。')

class MAMA:
    settle_city = 'Amercia'
    EATING   = 'bread'

    def diet(self):
        print('我们爱吃甜食。')

class MABA(BABA,MAMA):  
    pass

tommi_wei = MABA()

print(tommi_wei.settle_city)

print(tommi_wei.born_city)
# 方法调用,和属性调用一样,也符合就近原则。
tommi_wei.diet()

Los resultados de la operación son los siguientes:

Amercia
CHINA
我们爱吃米饭。

Cuarto, la implementación del código personalizado de la clase.

1. Personalización, puede agregar código

Todos miraron más de cerca el código y no encontraron nada, ¿dónde está la personalización de la clase?

class Chinese:
    eye = 'black'
    speak = 'zhong_guo_hua'

    def eat(self):
        print('吃饭,选择用筷子。')

class Taiwanren(Chinese):
    born = 'TAIWAN'
    def fruits(self):
        print('这里特产水果')

JAY=Taiwanren()
print(JAY.speak)
print(JAY.born)
JAY.eat()
JAY.fruits()

resultado de la operación

zhong_guo_hua
TAIWAN
吃饭,选择用筷子。
这里特产水果

2. Personalizado, también se puede reescribir

class CHINA:

    def land_area(self,area):
        print('台湾省占中国陆地面积是%d万平方公里左右。' % area)

class TAIWAN(CHINA):
    # 为参数 area 设置默认值。
    def land_area(self, area = 960, rate = 0.00375):
        CHINA.land_area(self, area * rate)

taiwanren = TAIWAN()
taiwanren.land_area()
# 两个参数都有默认值,所以可以这么调用。

resultado de la operación

台湾省占中国陆地面积是3万平方公里左右。

¡Atención a los detalles! La operación de la subclase heredando el método de la clase padre es seguir el método de la clase padre (parámetro) después de la declaración def.

El jefe viene

1. Educación del amor

Para profundizar la comprensión de todos, ¡tengamos dos aperitivos BOSS más para todos!

Papá es una persona seria, mamá es una persona cariñosa.

class FATHER:
    face = 'serious'
    job = 'ENGINEER'


class MOTHER:
    face = 'sweet'
    parenthood = 'MOM'


class MotherMore(MOTHER, FATHER):
    pass

class FatherMore(FATHER, MOTHER):
    face = 'gentle'

FACE3 = MotherMore()
FACE4 = FatherMore()
print(FACE3.face)
print(FACE4.face)

resultado de la operación:

sweet
gentle

2. Eficiencia del aprendizaje

class xuexixiaolv:
    def __init__(self, name, work=None, time=0.00, time_effective=0.00): 
        self.name           = name
        self.work           = work
        self.time           = time
        self.time_effective = time_effective

    def count_time(self, hour, rate):
        self.time += hour
        self.time_effective = hour * rate

class COMPUTER(xuexixiaolv):
    def __init__(self, name):
        xuexixiaolv.__init__(self, name, work='MATH', time=0.00, time_effective=0.00)

    def count_time(self, hour, rate=1):
        xuexixiaolv.count_time(self, hour, rate)

TEST1 = xuexixiaolv('BAN')
TEST2 = COMPUTER('LISA')
print(TEST1.work)
print(TEST2.work)
TEST1.count_time(10, 0.8)
TEST2.count_time(10)
print(TEST1.time_effective )
print(TEST2.time_effective )

resultado de la operación

None
MATH
8.0
10

Eso es todo por el estudio de hoy, ¡nos vemos la próxima! ¡Espero que el contenido de esta sección te sea útil!
¡Bienvenidos a todos a suscribirse a mis "Debilidades de la naturaleza humana" para darles una sensación diferente!

Supongo que te gusta

Origin blog.csdn.net/weixin_46259642/article/details/114942038
Recomendado
Clasificación