Orientado a objetos

Uno, orientado a objetos

  • Orientado al proceso:
    • Orientado a procesos significa que nuestro programa se descompone en pasos y el programa se completa abstrayendo cada paso.
    • Este método de escritura a menudo solo es adecuado para una función y, si desea implementar otras funciones, la reutilización suele ser baja.
    • Esta forma de escribir se ajusta al pensamiento humano y es más fácil de escribir.
  • Orientado a objetos:
    • Los lenguajes de programación orientados a objetos se enfocan en objetos en lugar de procesos, para la programación orientada a objetos, todo es un objeto.
    • Este método de codificación es más fácil de leer y de mantener.
    • Es fácil de reutilizar, pero el proceso de escritura no se ajusta al pensamiento convencional y la programación es relativamente problemática.

2. Introducción a la clase

  • Actualmente estamos aprendiendo los objetos integrados de python, pero los objetos integrados no pueden satisfacer nuestras necesidades, por lo que a menudo necesitamos definir algunos objetos en desarrollo.
  • Una comprensión simple de una clase es equivalente a un marco (dibujo) En el resumen del programa, necesitamos crear objetos basados ​​en la clase.
  • La clase es el marco (dibujo) del objeto.
  • También llamamos a los objetos una instancia de clase (instancia)
  • Si se crean varios objetos a través de una clase, llamamos a estos objetos una clase de objetos.
  • Las clases son objetos y las clases son objetos que se utilizan para crear objetos. Sintaxis de
    creación de clases
    :
# 语法:
class MyClass():
	pass

Nota: La regla de denominación de la gran joroba.

  • Puede agregar variables a un objeto y las variables en el objeto se denominan atributos. Sintaxis de
    creación de objetos
    :
mc = MyClass()

Ejemplo de demostración:

# 创建一个类:
class MyClass():
	pass
# 创建一个对象(实例):
mc = MyClass()
mc1 = MyClass()
mc2 = MyClass()
mc3 = MyClass()
# isinstance--检测对象是否是类的实例(对象)
r = isinstance(mc1,type(mc1))
print(r)
# 查看对象的数据类型
print(mc, type(mc))

Tres, la definición de la clase

  • Tanto las clases como los objetos son abstracciones de cosas en la vida real.
    • La clase (cosa) consta de dos partes
      • 1. Datos (atributos): inicializar variables
      • 2. Comportamiento (método): defina la función dentro de la clase
  • Llamada al método: nombre de la función del objeto () (para la llamada al método (función))
  • La diferencia entre la llamada al método y la llamada a la función:
    • Si es una llamada de función, si llama a varios parámetros formales, pasará varios parámetros reales.
    • Si es una llamada a un método, se pasa un parámetro por defecto, por lo que hay al menos un parámetro formal en el método.
  • En el bloque de código de clase, podemos definir variables y funciones
    • Las variables se convertirán en propiedades públicas para instancias de clase (objetos), y se puede acceder a todas las instancias (objetos) de esta clase en forma de --object.property name.
    • La función se convertirá en el método público de la instancia (objeto) de esta clase, y se puede acceder a todas las instancias (objeto) de esta clase en la forma de --object.method name.
      Ejemplo de demostración:
class MyClass():
    pass
# 检验
# print(id(MyClass),type(MyClass))
# 在类内部添加属性
MyClass.name = '奥特曼'

# 创建实例(对象)(并调用)
mc = MyClass()
# 在(实例)对象内部添加属性
mc.name = '葫芦娃'

# 创建实例(对象)
mc1 = MyClass()
print(mc.name)
print(mc1.name)

Resultado de la salida de impresión:

葫芦娃
奥特曼

Resumen: cuando hay valores de atributo en la instancia (objeto), la instancia primero llamará al atributo de la propia instancia, y el valor del atributo en la clase se llamará si no lo es.

class Person():

    # 在类内部创建属性(类似于初始化(公共)属性)(就是定义在类中的数据)
    name = '奥特曼'
    # 在类内部定义一个方法(speak是方法名)(定义在类中的函数)
    def speak(self):
        print('我想回家')


# 创建对象(实例)
a = Person()
b = Person()
# a 添加属性值(name是属性名)
a.name = '葫芦娃'
print(a.name)
print(b.name)
print(a.speak())
print(b.speak())

Resultado de la salida de impresión:

/Users/wangjiaxin/venv/bin/python /Users/wangjiaxin/PycharmProjects/wangjiaxin/Python-Cheney老师基础讲解/第十一讲/3--类的使用.py
葫芦娃
奥特曼
我想回家
None
我想回家
None

Resumen: Tanto las clases como los objetos son abstracciones en la vida real, de hecho se componen de dos partes.
1. Atributo (datos)
2. Método (comportamiento)

Cuando se llama a una función, solo hay unos pocos parámetros reales si hay varios parámetros formales.
Cuando se llama a un método, se especifica un parámetro de forma predeterminada, por lo que hay al menos un parámetro en el método.

Resumen: En el bloque de código de la clase, podemos definir variables y funciones.
1. Las variables se convertirán en los atributos públicos de esta instancia de clase (objeto), y se puede acceder a todas las instancias de esta clase (objeto) en forma de objeto. Nombre de atributo ().
2. La función se convertirá en el método público de esta instancia de clase (objeto), y se puede acceder a toda esta instancia de clase (objeto) en forma de objeto. Nombre de método ().

Cuatro, parámetro propio

  • Propiedades y métodos:
    • Las propiedades y métodos definidos en la clase son públicos, y el ventilador puede acceder a cualquier instancia de esta clase.
    • Proceso de búsqueda de propiedades y métodos
      * Cuando llamamos a la propiedad de un objeto, el analizador buscará la propiedad en el objeto actual. Si lo hay, devolverá directamente el valor de atributo del objeto actual. De lo contrario, vaya a la clase (objeto) del objeto actual para buscar, si lo hay, devuelva el valor del atributo de la clase (objeto). Si no es así, informe un error.
    • Las propiedades y los métodos se pueden guardar tanto en la clase (objeto) como en la instancia (objeto)
      • Si este atributo o método puede ser compartido por instancias, debe guardarse en el objeto de clase.
      • Si este atributo o método es exclusivo de una instancia. Debería guardarse en el objeto de instancia.
      • En general, las propiedades se almacenan en objetos de instancia, mientras que los métodos deben almacenarse en objetos de clase.
        Ejemplo de demostración:


    # 在类的内部创建属性(初始化函数)(name是属性名)
    name = '奥特曼'

    # 在类的内部创建一个方法(speak是方法名)
    def speak(self):
        print('你好我是%s' % self.name)
        # print(self)


# 创建对象(实例)
a = Person()
b = Person()
a.name = '葫芦娃'
b.name = '奥特曼'
# 调用方法:
# print(a)
a.speak()
# 同时都是a调用的,输出的变量相同
# print(b)
b.speak()
# 同时都是b调用的,输出的变量相同

Resultado de la salida de impresión:

你好我是葫芦娃
你好我是奥特曼

  • Si el parámetro self se utiliza en un método, debe llevar el parámetro self.
  • El parámetro self se refiere a la propia instancia que llamó al método.

Supongo que te gusta

Origin blog.csdn.net/Rhymeplot__JDQS/article/details/109089771
Recomendado
Clasificación