【19】Python 类型注解变量名、locals()

1 类型注解变量名后面加冒号

变量名后面加冒号标明变量类型,用法:

var: type = value

这是 Python 3.5 中引入的 Type Annotation,是一种注解,用来提示变量的类型。其中

var 为要定义的变量;
type 为该变量期待的类型;
value 为赋给该变量的值。
这种用法本质上和 var = value 相同,只是加上了 var 的类型说明。例如:

a: int = 10

这行代码将 10 赋值给变量 a,并指出变量 a 的类型是 int 型。

此外,类型注解也经常用在函数参数中,可以向函数的调用者提示参数类型:

def func(arg: int)

那么调用者调用函数 func 时就知道参数 arg 应该是一个 int 类型。

需要注意的是,类型注解只是一种提示,并非强制的,Python 解释器不会去校验 value 的类型是否真的是 type,它只是在提示调用者该参数的类型。例如:

a: str = 10  

这样是没有错的,python 解释器在执行时会把 a 当作 int 来操作。

2 locals()

locals()方法用来返回当前本地符号表字典 ,符号表是编译器维护程序必要信息的数据结构,包含了变量,方法,类等等。主要有两类符号表:

  1. 全局符号表
  2. 本地符号表

全局符号表存储程序全局范围的所有信息,Python使用globals()方法来访问。 全局范围包括所有不属于类和函数的函数以及变量。

本地符号表存储所有本地范围的相关信息,Python通过locals()方法来访问。 本地范围可以是一个函数,一个类等等。

def a(a, b):
    return locals()

r=a(1,3)
print(r)

结果:

{'a': 1, 'b': 3}
posted @ 2023-03-02 19:52  默默雷  阅读(105)  评论(0编辑  收藏  举报