资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python函数名前后加 python中函数名后面加点

python中,函数名前后的双划线有什么作用?

每一个module都有一个叫__name__的变量,它的值就是module的名字

站在用户的角度思考问题,与客户深入沟通,找到麻章网站设计与麻章网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、网络空间、企业邮箱。业务覆盖麻章地区。

比如os.__name__ 是"os",sys模块的__name__是"sys"

__main__也是一个模块,但是这个模块比较特殊,其他的模块都有一个对应的同名py文件,比如os.py, sys.py,这个模块却没有对应的固定名字的py文件,不管你执行 什么.py,它的名字都是__main__。它指的是正在运行的模块,即主模块。

上面说过,每个模块都有__name__这个变量, 那么主模块也不例外,主模块的__name__变量,值就是"__main__"

解释了半天,再说你的问题:__name__和name是两个不同的变量,__name__有定义而name没有定义,使用没有定义的变量就要出错,这没有什么好说的。

例如你写:

if name == '__main__':是一个变量未定义的错误

而当你写 if __name__ == 'main':的时候,由于__name__的值其实是'__main__',所以if的条件为假,不会执行你的代码。

最后,你可以自己写一点测试代码来探索这个问题,文件名就叫test.py,代码也很简单:

print(__name__)

import test

输出有两行,第一行毫无疑问是__main__,第二行比较有意思,输出是test,因为此时test.py作为一个模块被import其__name__就是"test"。

python函数的输入变量前加*或者**

当函数要接受元组或者字典参数时,它分别使用 * 和 ** 前缀。

在变量前 加 ,则输入的函数参数会作为一个元组存在args中, 多余的参数 *也会存在args中,如:

如果使用******前缀,输入的参数会被存放在字典中, 多余的参数 也会存在kwargs中,kwargs为一个字典

关于python类中函数名前加self.的问题?

self是对实例自己的引用。

self.a()的意思是"调用自己的过程a"。

试想,有定义一个函数a,同时,类中也有过程a,要区分两者,在类中就要通过是否使用self前缀来区分,在外部就要通过是否有实例名来区分。

参考以下代码:

代表什么?'>python中,@和-> 代表什么?

-常常出现在python函数定义的函数名后面,为函数添加元数据,描述函数的返回类型,从而方便开发人员使用。比如:

通常的写法是:

def attrs(self) - _Attrs:

pass

这种写法通常是写在函数的函数名后面

def add(x, y) - int:

return x+y

这里面,元数据表明了函数的返回值为int类型。

至于楼主问题中的,- _Attr则表明函数返回的是一个外部可访问的类的私有变量。


分享标题:python函数名前后加 python中函数名后面加点
文章位置:http://cdkjz.cn/article/docpcoi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220