python变量作用域和模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python变量作用域和模块相关的知识,希望对你有一定的参考价值。

全局变量:全局变量可以在整个程序范围内访问。

局部变量:局部变量只能在其被声明的函数内部访问。

globvar = 0
def set_globvar_to_one():
    global globvar    # 使用 global 声明全局变量
    globvar = 1
def print_globvar():
    print(globvar)     # 没有使用 global
set_globvar_to_one()
print  globvar        # 输出 1
print_globvar()       # 输出 1,函数内的 globvar 已经是全局变量

1、global---将变量定义为全局变量。可以通过定义为全局变量,实现在函数内部改变变量值。

2、一个global语句可以同时定义多个变量,如 global x, y, z。

 

模块:python模块是一个python文件,以 .py  结尾,包含python对象的定义和python语句。

          模块让你能够有逻辑地组织你的 Python 代码段。

         把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

         模块能定义函数,类和变量,模块里也能包含可执行的代码。

 

导入模块方式一:  import  模块名   

调用模块里面的函数:    模块名.函数名

 

import support      # 导入模块

support.print_func("Runoob")     # 现在可以调用模块里包含的函数了

 

导入模块方式二:from  模块名 import  函数名1,函数名2..........

from fib import fibonacci 要导入模块 fib 的 fibonacci 函数

这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。


 

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

from modname import *


reload(模块名字)

module_name要直接放模块的名字,而不是一个字符串形式。比如想重载 hello 模块,如下:

reload(hello)

python中的包:
包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。

# 导入 Phone 包
from package_runoob.runoob1 import runoob1
from package_runoob.runoob2 import runoob2
runoob1()
runoob2()

 












以上是关于python变量作用域和模块的主要内容,如果未能解决你的问题,请参考以下文章

作用域和名称空间

Python函数之返回值作用域和局部变量

python 变量作用域和列表

python函数的作用域和引用范围

Python - 模块

Python变量作用域