Python中变量名后面加冒号是什么意思?

deffunc(z,arg2=''):a:z=Noneprint(a)x=func('22','3')#print出来是Nonedeffunc(a,arg2=''):#参... def func(z,arg2=''):
a:z=None
print(a)

x=func('22','3') #print出来是None

def func(a,arg2=''): #参数z改为a
a:z=None
print(a)

x=func('22','3') #print出来还是None

请问 a:z=None 这句是什么意思?尤其是z=None是什么意思?为什么无法改变变量a值?
展开
 我来答
放n赐
2019-05-18 · 超过11用户采纳过TA的回答
知道答主
回答量:14
采纳率:100%
帮助的人:11.3万
展开全部

变量注释的语法:注释变量类型,明确指出变量类型,方便帮助复杂案例中的类型推断。

var: type = value  其实本质上就是  var = value  # type就是var期望的类型

就像上一个人回答的那样:类型注释只是一种提示,并非强制的,Python解释器不会去校验value的类型是否真的是type

例如:a: str = 10  这样是没有错的,python解释器在执行时会把a当作int来操作(type(a)——int)。      这不像是 C 语言中 int a(a必须是int类型)。

还有一些使用时的注意事项:

1、省略初始值会使变量未初始化:a: str, print(a)  —— 抛出 NameError 异常

2、注释局部变量将导致解释器始终使其成为局部变量:

同一函数范围内注释受全局或非本地变量是不允许的。

def fun():
   global a
   a: str = 'python'
   print(a)
fun()
# 将抛出错误信息:SyntaxError: annotated name 'a' can't be global
# 即是 注释变量 a 不能是全局的。

3、类型注释还可用于在类主体和方法中注释类和实例变量。

4、注释的目标可以是任何有效的单个赋值目标:d = {}, d['a']: str = ''python"——输出d为字典 {'a': 'python'} ;      d = [],  d[0]: int = 10——输出为列表[10]

注意:带括号的名称也被视为表达式,而不是简单名称。比如:(a): int = 0

更详细的信息可以参考:网页链接

GTA小鸡
高粉答主

2019-05-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
这是Python 3.5中引入的Type Annotation,是一种注解,用来提示变量的类型。
用法是var: type = value
var为要定义的变量,type为该变量期待的类型,value为赋给该变量的值。
本质上和var = value是一回事,只是加上了var的类型说明。
类型注解是一种提示,并非强制的,Python解释器不会去校验value的类型是否真的是type。
类型注解通常用在函数参数中,向函数的调用者提示参数类型:
def func(arg: int)
那么调用者调用函数func时就知道参数arg应该是一个int类型。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式