11a conferencia sobre el aprendizaje de Python
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
- La clase (cosa) consta de dos partes
- 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.