Directorio de artículos
Prefacio
Explicar y organizar algunos usos de alto nivel de Python de uso común.
- 『Python』 tutorial básico de Python (1) -estructura de datos básica
- 『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 conmap()
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 lasorted()
función devuelve una nueva lista.sorted()
La función puede pasar una palabra clavekey
para especificar los criterios de clasificación, parámetrosreverse
representativos 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
lambda
una 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 ...