A los parámetros de función
3. Los parámetros universales
* args
Cuando la definición de función, * representa la polimerización, todos los parámetros posicionales se agregarán en una tupla, asignado a la args
def fun_name(*args):
print('%s, %s, %s, %s' % args)
fun_name('jason', 'carly', 'dog', 'cat')
Ejercicio: escribir el producto de una función para calcular los números de todas las funciones de entrada
def func(*args):
result = 1
for i in args:
result = i * result
return result
print(func(1, 2, 3, 4))
** kwargse
Cuando se define la función, ** representa la suma de todos los argumentos de palabras clave serán sumados en un diccionario, asignado a los kwargs
def info(**kwargs):
print(kwargs)
info(name='jason', age=24, sex='man')
# 万能参数
def info(*args, **kwargs):
print(args)
print(kwargs)
Forma parámetros de la secuencia:
def func(位置参数,*args,默认参数,仅限关键字参数,**kwargs):
# 默认参数和仅限关键字参数顺序可互换
Cuando la llamada de función, * En nombre de batido
- Iterables sólo cuando disgregó
- Corresponde al efecto real de cada bucle de iteración objetos se pueden pasar, los resultados obtenidos para pasar el bucle * args
def func(*args):
print(args)
func(*'1234', *'5678') #结果为('1', '2', '3', '4', '5', '6', '7', '8')
def func(*args):
print(args)
func(*[1, 2, 3, 4], *[5, 6, 7, 8]) # 结果为(1, 2, 3, 4, 5, 6, 7, 8)
def func(*args):
print(args)
func(*{'k1': 'v1', 'k2': 'v2'}, *{'k3': 'v3', 'k4': 'v4'})
# 结果为('k1', 'k2', 'k3', 'k4')
** con el diccionario sólo se dispersa
- El efecto real es equivalente para cada ciclo pasado un diccionario, pero la clave es que todo el ciclo kwargs para conseguir un diccionario que consiste en
def func(**kwargs):
print(kwargs)
func(**{'k1': 'v1', 'k2': 'v2'}, **{'k3': 'v3', 'k4': 'v4'})
# 结果为{'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'}
* Otros usos
# 首先看下分别赋值
a, b = (1, 2)
print(a, b) # 1 2
# 其实还可以这么用:
a, *b = (1, 2, 3, 4,)
print(a, b) # 1 [2, 3, 4]
*rest, a, b = range(5)
print(rest, a, b) # [0, 1, 2] 3 4
print([1, 2, *[3, 4, 5]]) # [1, 2, 3, 4, 5]
En segundo lugar, el espacio de nombres
-
espacio de nombres global -> nos Py directamente en el documento, la variable declarado fuera de la función pertenecen al espacio de nombres global
-
espacio de nombres local -> variables declaradas en una función se mantendrá en el espacio de nombres locales
-
Espacio incorporado, -> intérprete de python de almacenamiento nos proporciona el nombre, lista, tupla, str, int estos espacios de nombres se construyen
Cargando orden: espacio de nombres de construcción -> espacio de nombres locales -> Espacio de nombres global
valor de secuencia: espacio de nombres global -> espacio de nombres locales -> espacio de nombres incorporado
En tercer lugar, el alcance
A nivel mundial alcance: integrado en el espacio de nombres, espacio de nombres global
2. Ámbito Local: espacio de nombres locales
- El ámbito local puede referirse a variables con ámbito global
- alcance global no puede hacer referencia a las variables de ámbito local
- ámbito local no puede cambiar la variable de ámbito global
globales () locales ()
a = 1
b = 2
def func():
c = 3
d = 4
print(globals())
print(locals())
func()
En cuarto lugar, las funciones de orden superior
def func1():
print(1)
def fun2():
print(2)
print(3)
fun2()
print(4)
func1()
"""结果为:
1
2
3
4
"""