Python-- desde cero para aprender el desarrollo orientado a objetos 3

Python-- desde cero para aprender el desarrollo orientado a objetos 3

Universidad de Tecnología de Taiyuan equipo de robótica tarjeta 20 de punzón Día 11

1, métodos de clase y atributos de clase

1.1 es una clase especial de objetos

Python en todo es un objeto:

  • Clase AAA: categoría definida pertenece a la clase de objeto
  • obj1 = AAA () perteneciente al objeto de instancia
  • El programa se está ejecutando, escriba el mismo se carga en memoria
  • En Python, la clase es un objeto especial - objeto de la clase
  • El programa se ejecuta, la clase de objeto en la memoria, sólo una , el uso de una clase pueden crear un número de instancias de objetos
  • Además de los paquetes Ejemplos de atributos exteriores y métodos, objetos de clase también pueden tener sus propios atributos y métodos
    1. Las propiedades de clase
    2. Métodos de clase
  • Por nombre de la clase . La forma en que se puede atribuir clase de acceso o el método llama a la clase

1,2 atributos de instancia y atributos de clase

  • atributo de clase es un objeto de clase definidos atributos
  • Se utiliza generalmente para grabar relevante para esta clase de función
  • atributo de clase para no grabar características del objeto particular

Ejemplo: Para registrar el número de objetos de esta clase

class Tool(object):

	# 使用赋值语句,定义类属性,记录创建工具对象的总数
	count = 0

	def __init__(self, name):
		self.name = name
		
		# 针对类属性做一个计数+1
		Tool.count += 1

# 创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("榔头")
tool3 = Tool("铁锹")

# 知道使用 Tool 类到底创建了多少个对象?
print("现在创建了 %d 个工具" % Tool.count)

1.3 métodos de clase y métodos estáticos

  • propiedad de clase que es para la clase de objeto definiciones de atributos
    • Use las instrucciones de asignación bajo la palabra clave class para definir un atributo de clase
    • atributo de clase para la grabación correspondiente a esta clase de función
  • método de clase es para el objeto de clase de método definido
    • En el método de la clase en el interior se puede acceder directamente a las propiedades de la clase o invocar otros métodos de clase

la sintaxis

@classmethod
def 类方法名(cls):
	pass
  • método de clase requiere un decorador @classmethod ser identificado, dijo el intérprete Este es un método de clase
  • método de clase primer parámetro debe ser cls
    • De los cuales la clase llamada a un método, cls en el camino es una referencia que la clase
    • Este parámetro y el método de ejemplo del primer parámetro es una auto similares
    • Inclinar un nombre diferente puede ser, pero el hábito de usar cls
  • Por el nombre de la clase. Invocación de método de clase , al llamar al método , los parámetros tienen que pasar cls
  • Dentro de un método
  • Por cls. Clase de acceso Atributo
  • También cls. Puede llamar a otros métodos de la clase

Ejemplos exigen

  • Definir un Herramientas
  • Cada herramienta tiene su propio nombre
  • La demanda en - clase de número de la clase de objeto del procedimiento de envasado de un show_tool_count, usando la corriente de salida de esta clase, creado
@classmethod
def show_tool_count(cls):
	"""显示工具对象的总数"""
	print("工具对象的总数 %d" % cls.count)

Dentro de los métodos de clase, se puede utilizar directamente cls de acceso propiedades de clase o llamar a un método de clase

1,4 método estático

  • En el desarrollo, si se desea en la clase encapsula un método que:
    • No sólo no es necesario para acceder a una propiedad de instancia o llamar al método de instancia
    • Además no es necesario para acceder a las propiedades de la clase o llamando al método de clase
  • Esta vez, este método puede ser empaquetado como un método estático

la sintaxis

@staticmethod
def 静态方法名():
	pass
  • Los métodos estáticos necesarios decorador @staticmethod ser identificados, dijeron que el intérprete se trata de un método estático
  • Por el nombre de la clase. Llame al método estático
class Dog(object):
	
	# 狗对象计数
	dog_count = 0

	@staticmethod
	def run():

		# 不需要访问实例属性也不需要访问类属性的方法
		print("狗在跑...")
	
	def __init__(self, name):
		self.name = name

2, anormal

  • Programa en tiempo de ejecución, si el intérprete de Python se encuentra con un error, la ejecución del programa de parada, y las indicaciones alguna información incorrecta, lo que es anormal
  • El programa deja de ejecutarse y un mensaje de error esta acción, por lo general llaman: tiro (aumento) anormal

2.1 captura la excepción

  • El desarrollo del programa, si la ejecución de un código no se puede determinar correctamente , puede aumentar el intento (intento) para detectar la excepción
  • capturar excepciones simples sintaxis:
try:
	尝试执行的代码
except:
	出现错误的处理
  • tratar intento , trate de escribir el código de abajo, sin saber si el código puede ser ejecutado normalmente
  • excepto si no , escribir el código a continuación intento falla

El tipo de captura de errores

  • Durante la ejecución del programa, puede encontrar diferentes tipos de excepciones , y la necesidad de diferentes tipos de excepciones , responder de manera diferente , esta vez, tenemos que capturar el tipo de error
  • La sintaxis es la siguiente:
try:
	# 尝试执行的代码
	pass
except 错误类型1:
	# 针对错误类型1,对应的代码处理
	pass
except (错误类型2, 错误类型3):
	# 针对错误类型2 和 3,对应的代码处理
	pass
except Exception as result:
	print("未知错误 %s" % result)
  • Cuando el intérprete de Python lanza una excepción , la primera palabra en la última línea del mensaje de error, el tipo está mal

error desconocido de captura

  • En el desarrollo, para anticipar todos los posibles errores , o tiene alguna dificultad
  • Si desea que el programa se produce algún error, independientemente , no lo hará porque intérprete de Python lanza una excepción se ha terminado , se puede añadir otro excepción

La sintaxis es la siguiente:

except Exception as result:
	print("未知错误 %s" % result)

captura anormal de la sintaxis completa

  • En el desarrollo real, con el fin de poder hacer frente a las anomalías complejas, sintaxis completa anormal es el siguiente:

consejos:

  • Para la sintaxis completa de escenarios, en el estudio de seguimiento, en combinación con los casos reales se entenderá mejor,
  • Ahora hay una primera impresión de esta estructura gramatical
try:
	# 尝试执行的代码
	pass
except 错误类型1:
	# 针对错误类型1,对应的代码处理
	pass
except 错误类型2:
	# 针对错误类型2,对应的代码处理
	pass
except (错误类型3, 错误类型4):
	# 针对错误类型3 和 4,对应的代码处理
	pass
except Exception as result:
	# 打印错误信息
	print(result)
else:
	# 没有异常才会执行的代码
	pass
finally:
	# 无论是否有异常,都会执行的代码
	print("无论是否有异常,都会执行的代码")
  • Código demás sólo cuando no se no se ejecute ninguna anormalidad
  • Por último, si hay o no un código de excepción que se ejecutará
  • Antes del ejercicio de un anormal completa de captura de código es el siguiente
try:
	num = int(input("请输入整数:"))
	result = 8 / num
	print(result)
except ValueError:
	print("请输入正确的整数")
except ZeroDivisionError:
	print("除 0 错误")
except Exception as result:
	print("未知错误 %s" % result)
else:
	print("正常执行")
finally:
	print("执行完成,但是不保证正确")

2.2 transferencia anormal

  • Anormal de transferencia - cuando la función / método de ejecución se produce una excepción , se pasará a excepción de la función / método de la parte que se
  • Si la transferencia al programa principal , todavía hay manejador de excepciones , se dará por terminado el programa

rápido

  • En el desarrollo, puede aumentar en la principal función de captura de anomalías
  • Las otras llamadas a funciones en la función principal, siempre que la anormal, serán pasados a la función main anomalías capturados en
  • Esto elimina la necesidad en el código para aumentar el número de trampas de excepción , para asegurar un código limpio

demanda

  1. La función definida demo1 () solicita al usuario y devuelve un entero
  2. Las funciones definidas por demo2 () llamada demo1 ()
  3. demo2 llamada en el main ()
def demo1():
	return int(input("请输入一个整数:"))

def demo2():
	return demo1()

try:
	print(demo2())
except ValueError:
	print("请输入正确的整数")
except Exception as result:
	print("未知错误 %s" % result)

2.3 tiros lanzar una excepción

  • En el desarrollo, además de error de ejecución de código Python intérprete lanza que una excepción
  • También puede tomar la iniciativa de lanzar una aplicación necesidades de negocio específicas de excepción

Lanzar una excepción

  • Python se proporciona una excepción clase de excepción
  • En el desarrollo, si las necesidades de negocios se reúnen específica, tenemos la esperanza de lanzar una excepción, se puede:
    1. Crear un objeto de Excepción
    2. Utiliza los objetos lanzados aumento de palabras clave
Publicado 12 artículos originales · ganado elogios 51 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/soul_study/article/details/104766857
Recomendado
Clasificación