『Python』 tutorial básico de python (3) -el uso de métodos avanzados


Prefacio

Explicar y organizar algunos usos de alto nivel de Python de uso común.

  1. 『Python』 tutorial básico de Python (1) -estructura de datos básica
  2. 『Python』 tutorial básico de python (2) -conocimiento básico de acabado

Uno, propiedad del decorador

El problema de los permisos de acceso para atributos y métodos en Python. Aunque no se recomienda establecer el atributo como privado, también es problemático si el atributo está expuesto directamente al mundo exterior. Por ejemplo, no tenemos forma de verificar si el el valor asignado al atributo es válido. Nuestra sugerencia anterior es comenzar el nombre de la propiedad con un solo guión bajo. De esta manera, implica que la propiedad está protegida. No se recomienda acceder directamente a la propiedad. Si desea acceder a la propiedad, puede utilizar el getter de la propiedad. (acceso) y definidor (modificador)) Método para realizar la operación correspondiente. Si desea hacer esto, puede considerar el uso de envoltorios @property para ajustar los métodos getter y setter para que el acceso a las propiedades sea seguro y conveniente.En pocas palabras, el papel de los decoradores es agregar funciones adicionales a los objetos existentes. El código es el siguiente:

class Person(object):
def __init__(self, name, age):
    self._name = name
    self._age = age
 
# 访问器 - getter方法
@property
def name(self):
    return self._name

# 访问器 - getter方法
@property
def age(self):
    return self._age

# 修改器 - setter方法
@age.setter
def age(self, age):
    self._age = age

def play(self):
    if self._age <= 16:
        print('%s正在玩飞行棋.' % self._name)
    else:
        print('%s正在玩斗地主.' % self._name)

def main( ):
    person = Person('王大锤', 12)
    person.play( )
    person.age = 22
    person.play( )
    # person.name = '白元芳'  # AttributeError: can't set attribute

if __name__ == '__main__':
    main( )

En segundo lugar, el decorador pysnooper

Herramienta muy útil para probar código

# 安装(两种方式)
pip install pysnooper
conda install -c conda-forge pysnooper

Pruebe qué fragmento de código se agrega @ pysnooper.snoop () antes de este código.

# Example:
import numpy as np
import pysnooper

@pysnooper.snoop()
def one(number):
    mat = []
    while number:
        mat.append(np.random.normal(0, 1))
        number -= 1
    return mat

one(3)

También puede probar el efecto de un solo bloque, específicamente use: https://github.com/cool-RR/PySnooper

Tres, iteradores y generadores

  • Generador: un mecanismo para calcular mientras se realiza un bucle
  • Iterador (iterador): se puede next()llamar función devuelve el objeto y continúa al siguiente valor

Cuatro, función de mapa

map(function, iterable, ...)

  • map () mapeará la secuencia especificada de acuerdo con la función proporcionada. Puede aplicar una función a una secuencia iterable y devolver la salida de la secuencia por la función.
  • La primera función de parámetro llama a la función de función con cada elemento en la secuencia de parámetro y devuelve una nueva lista que contiene el valor de retorno de cada función de función.
# 示例
mylist = list(map(upper, ['sentence', 'fragment']))
list_of_ints = list(map(int, "1234567"))

Cinco, reducir la función

reduce()Función con map()diferentes funciones, una función de su entrada requiere dos argumentos. reduce()El proceso consiste en utilizar primero la función de entrada para operar sobre los dos primeros elementos de la secuencia, y luego el resultado obtenido se opera con el tercer elemento hasta el último elemento.

Seis, función de filtro

filter() La función de la función es principalmente filtrar la secuencia iterable a través de la función de entrada y devolver la secuencia iterable que cumple la condición del filtro.

def is_odd(n):
	return n % 2 == 0
filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
# return: [2, 4, 6, 10]

Siete, función ordenada

  • sorted()La función puede completar la clasificación de la secuencia iterable.
  • Y la lista en sí viene con sort()diferentes funciones, donde la sorted()función devuelve una nueva lista.
  • sorted()La función puede pasar una palabra clave keypara especificar los criterios de clasificación, parámetros reverserepresentativos de si es al revés o no.
sorted([3, 5, -87, 0, -21], key=abs, reverse=True)	# 绝对值排序,并且为反序
# return: [-87, -21, 5, 3, 0]

Ocho, función anónima lambda

Para algunas funciones lógicas simples, puede usar lambdauna definición funcional sustituida por expresiones de función anónima, guarda el nombre de las funciones definidas y similares para simplificar la legibilidad del código.

add = lambda x, y: x + y
add(1, 2)
# return: 3

Nota: Aún no lo he terminado, estoy ocupado, tómate el tiempo para seguir actualizando los combates ...

Supongo que te gusta

Origin blog.csdn.net/libo1004/article/details/111029660
Recomendado
Clasificación