Resumen de los conceptos básicos orientados a objetos en Python

Los conceptos centrales de la programación orientada a objetos: encapsulación, abstracción, polimorfismo, herencia, composición

Paquete:

El primer concepto: en la programación orientada a objetos, un objeto concentra variables y métodos en un lugar, el objeto en sí.

El segundo concepto: se refiere a los datos internos de la clase oculta para evitar el acceso directo por parte del código del cliente.

 1class Data:
 2    def __init__(self):
 3        self.list1=[22,33,44,55,66]
 4
 5    def chang_list(self,index,num):
 6        self.list1[index]=num
 7
 8data1=Data()
 9data1.list1[0]=100
10print(data1.list1)
11
12data2=Data()
13data2.chang_list(0,100)
14print(data2.list1)

abstracto:

Se refiere al proceso de eliminar las muchas características de las cosas para que solo se retengan las sustancias más básicas. En la programación orientada a objetos, se utilizan técnicas abstractas al modelar objetos mediante clases.

 1import abc
 2class Animal(metaclass=abc.ABCMeta):
 3    @abc.abstractmethod #抽象的对象方法
 4    def sound(self):
 5        pass
 6    @abc.abstractclassmethod#抽象的类方法
 7    def test1(cls):
 8        pass
 9    @abc.abstractstaticmethod#抽象的静态方法
10    def test2(self):
11        pass
12
13class Dog(Animal):
14    def sound(self):
15        print("wang wang")
16
17    @classmethod
18    def test1(cls):
19        print("class of method")
20
21    @staticmethod
22    def test2():
23        print("static of method")
24
25dog=Dog()
26dog.sound()
27dog.test1()
28Dog.test1()
29dog.test2()
30Dog.test2()

heredar:

1) Coloque los atributos y métodos públicos en la clase principal y solo considere los atributos y métodos únicos.

2). Anular el método de la clase padre significa anular el método de la clase padre. Solo se llamará al método anulado en la subclase durante la operación sin llamar al método en la clase padre.

3) Una subclase que tiene una clase padre se llama herencia única Una subclase puede tener múltiples clases padre y tener todas las propiedades y métodos de la clase padre.

 1class Student:
 2    def study(self):
 3        print("学生要学习")
 4    def practice(self):
 5        print("学习完成要练习")
 6
 7class HighStudent(Student):
 8    def study_compute(self):
 9        print("高中同学还要学习计算机")
10
11hs=HighStudent()
12hs.study()
13hs.practice()
14hs.study_compute()

Polimorfismo:

1). Se refiere a la capacidad de proporcionar interfaces para diferentes formas básicas (tipos de datos). Las interfaces se refieren a funciones y métodos.

2) Como sugiere el nombre, polimorfismo significa múltiples manifestaciones, es un mecanismo, una capacidad, no una palabra clave. Se realiza en la herencia de la clase y se refleja en la llamada al método de la clase.

3) Polimorfismo significa que la variable no sabe cuál es el objeto referenciado y se comporta de manera diferente dependiendo del objeto referenciado.

4) El polimorfismo se basa en la encapsulación y la herencia: diferentes objetos de subclase llaman al mismo método y producen diferentes efectos de ejecución. Puede aumentar la flexibilidad del código, basado en la premisa de heredar y anular los métodos de la clase padre, llamar al método no afectará el diseño interno de la clase.

 1class Animals(object):
 2    def __init__(self,name):
 3        self.name=name
 4    def eat(self):
 5        print(self.name+" is eating")
 6class Cat(Animals):
 7    def __init__(self,name):
 8        super(Cat, self).__init__(name)
 9class Pig(Animals):
10    def __init__(self,name):
11        super(Pig, self).__init__(name)
12
13class Person():
14    def feedAnimal(self,animal):
15        animal.eat()
16
17cat=Cat("tom")
18pig=Pig("peiqi")
19tony=Person()
20tony.feedAnimal(cat)
21tony.feedAnimal(pig)

combinación:

1) Al utilizar la técnica de combinación para guardar la variable de función de un objeto en otro objeto, se puede simular la relación de propiedad.

2) Es un método de combinar objetos o clases en estructuras o componentes de datos más complejos.

3) En combinación, un objeto puede usarse para llamar a funciones miembro en otros módulos, de modo que las llamadas entre módulos de funciones básicas se puedan realizar sin herencia.

 1class Monkey():
 2    def __init__(self,name,owner):
 3        self.name=name
 4        self.owner=owner
 5
 6class Persons():
 7    def __init__(self,name):
 8        self.name=name
 9
10mike=Persons("mike")
11mickMouse=Monkey("goldeMonkey",mike)
12print(mickMouse.owner.name)
13
14class A(object):
15    def a1(self):
16        print("a1")
17class B(object):
18    def b1(self):
19        print("b1")
20        A().a1()
21bb=B()
22bb.b1()

para resumir:

    Lo que comparto con ustedes hoy son los conceptos centrales de la programación orientada a objetos: encapsulación, abstracción, polimorfismo, herencia y composición. Puede combinar ejemplos de código para ejecutar localmente y sentir el significado de estos conceptos.

Bienvenido a prestar atención a la cuenta pública de [The Way of Infinite Testing], responder a [recibir recursos],
recursos de aprendizaje de programación de Python productos secos, automatización de la interfaz de usuario de la aplicación del marco Python + Appium , automatización de la interfaz de usuario web del marco Python + Selenium, API del marco Python + Unittest automatización,


Los recursos y códigos se envían gratis ~
Hay un código QR de la cuenta oficial en la parte inferior del artículo, puede escanearlo en WeChat y seguirlo.

Observaciones: Mi cuenta pública personal se ha abierto oficialmente, dedicada al intercambio de tecnología de prueba, que incluye: pruebas de big data, pruebas funcionales, desarrollo de pruebas, automatización de la interfaz API, operación y mantenimiento de pruebas, pruebas de automatización de la interfaz de usuario, etc., búsqueda pública de WeChat cuenta: "Wuliang The Way of Testing", o escanee el código QR a continuación:

 ¡Presta atención y crezcamos juntos!

Supongo que te gusta

Origin blog.csdn.net/weixin_41754309/article/details/112100805
Recomendado
Clasificación