三元表达式if条件成功值if条件else else成功值#if条件成功结果if条件else成功结果a=20b=10c=5 if ab else 10 print(c)# 5函数的命名空间命名空间一共分为三种:
全局命名空间
局部命名空间
内置命名空间
python解释器提供的名称存储在*内置命名空间:输入、打印、字符串、列表、元组中.都是我们带的时候可以用的熟悉的方法。
三种命名空间之间的加载与取值顺序:
加载顺序:内置命名空间(程序运行前加载)-全局命名空间(程序运行时自上而下加载)-局部命名空间(程序运行时加载)。
取值顺序:
本地调用:本地命名空间-全局命名空间-内置命名空间
x=1 def f(x): print(x)# 10 print(10)被全局调用:全局命名空间-内置命名空间
DEF FUN (a,b,c) : return max (a,b,c) #使用带有内置命名空间的MAX print(FUN(1,2,3)) DEF MAX (a,b)3360 c=a if Abel b return c print(MAX(1,5)) #使用1
范围就是作用域,根据有效作用域可以分为全局范围和局部范围。
包括作用域,在内的全局作用域:可以在整个文件的任何地方引用,全球通用。
内置命名空间、全局命名空间:本地命名空间,它只能在局部作用域.本地范围内生效
内
print(globals())print(locales())a=20b=50 def haha(): x=1y=2 print(globals())# name ' ' { ' _ _ name _ ' 3360 ' _ _ main _ _ '在全局范围内,' __package__': None,_ _ loader _ _ ' : _ frozen _ import lib _ external。0x7fc551375710处的SourceFileLoader对象,' __spec__': None,__annotations__': {},' __builtins__':模块' builtins '(内置),' __file__': 'xx.py ',' __cached__': None,' a': 20,B' 3360 50,'哈哈' 3360函数haat0x7fc 500x7fc551375710处的SourceFileLoader对象,' __spec__': None,__annotations__': {},' __builtins__':模块' builtins '(内置),' __file__': 'xx.py ',' __cached__': None,' a': 20,B' 3360 50,'哈哈' 3360函数hahaat0x7FC
命名空间范围是不可分的。
globals和locals方法
全局范围:全局命名空间,内置命名空间
本地范围:本地命名空间
小的可以大范围用,大的不能小范围用;
在小范围内,如果要使用当前小范围内可用的变量,使用自己的;如果小区域不存在,就用上一级的;如果不存在,使用上一级的,以此类推。否则,报告一个错误。
为什么会有范围这个概念?
为了函数中的变量不会影响整个世界