最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python怎么使用全局变量

    正文概述    2020-03-27   241

    python怎么使用全局变量

    在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。

    在python的函数使用时,经常会碰到参数定义的问题。如果不声明全局变量,会报错

    count = 1
    def cc():
     count = count+1
    cc()
    Traceback (most recent call last):
    File "<ipython-input-17-f6b58c567c1a>", line 1, in <module>
     cc()
    File "<ipython-input-16-aab94f1185b9>", line 2, in cc
     count = count+1
    UnboundLocalError: local variable 'count' referenced before assignment

    意思是说count为局部变量,在使用它之前没有被赋值。在函数内无法直接使用全局变量。

    num = 1
    id(num)
    Out[31]: 1886744032
    def cc():
     num = 2
     print(id(num))
     print(num)
    cc()
    1886744064
    2

    可以看出函数里面的num是局部变量,有什么办法能在函数内使用全局变量呢?根据官方文档,可以用global语句:

    1.The global statement is a declaration which holds for the entire current code block. It means that the
    2.listed identifiers are to be interpreted as globals. It would be impossible to assign to a global variable without global.

    意思是说global语句可以声明一个或多个变量为全局变量。该声明仅在当前代码块中有效。除此之外,没办法访问全局变量。所以在函数中添加global声明:

    def cc():
     global count
     count = count+1
     print(count)
    cc()
    2

    用global声明多个变量需要用逗号分隔:

    num = 0
    def cc():
     global count,num
     count = count+1
     num = num+2
     print(count,num)
    cc()
    3 2
    # 可以函数中的global声明能够修改全局变量
    num
    Out[24]: 2
    # 
    count
    Out[25]: 3
    在使用全局变量的场合,也可用类变量代替
    class C:
     count = 3
    def cc():
     count = C.count+1
     print(count)
    cc()
    4

    如果是想在函数中调用全局变量,这需要global声明。之后调用全局变量,全局变量的值也随之可能发生改变,如果是count = count+1这种再定义的时候,否则全局变量只是被调用。也可以通过class来调用变量的方法达到全局变量的效果

    global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了。(更多学习内容,请点击python学习网)


    起源地下载网 » python怎么使用全局变量

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元