发表日期: 2022-07-04 14:44:12 浏览次数:33
佛山网页设计-高端网站设计公司
os模块提供了不少与操作系统相关联的函数。
>>> import os>>> os.getcwd() # 返回当前的工作目录'C:\\Python34'>>> os.chdir('/server/accesslogs') # 修改当前的工作目录>>> os.system('mkdir today') # 执行系统命令 mkdir 0
建议使用 "import os" 风格而非 "from os import *"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。
在使用 os 这样的大型模块时内置的 dir() 和 help() 函数非常有用:
>>> import os>>> dir(os)<returns a list of all module functions>>>> help(os)<returns an extensive manual page created from the module's docstrings>
针对日常的文件和目录管理任务,:mod:shutil 模块提供了一个易于使用的高级接口:
>>> import shutil>>> shutil.copyfile('data.db', 'archive.db')>>> shutil.move('/build/executables', 'installdir')
glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:
>>> import glob>>> glob.glob('*.py')['primes.py', 'random.py', 'quote.py']
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878
行结果:(正常运行)
在函数 test() 中,可以读取全局命名空间中的 “a”,对应语句 “b=a+1”。
即在局部作用域中,可以访问全局命名空间中的变量。
若程序改为如下:
运行:(提示出错)
错误的原因在于语句 “a=b”,对 “a” 进行赋值是不可以的。
即在函数 test() 中,不可以直接对全局命名空间中的 “a” 进行赋值。
若程序改为如下:
运行:(正常运行)
语句 “global a” 声明了 “a” 采用全局命名空间中的 “a”,这样便可在函数 test() 中,对全局命名空间中的 “a” 直接进行赋值了。
若没有使用 global 或 nonlocal 关键字对局部变量进行声明,在局部作用域中,可以访问全局命名空间中的变量,不可对其进行赋值。
若使用了 global 或 nonlocal 关键字对局部变量进行声明,在局部作用域中,可以访问全局命名空间中的变量,也可对其进行赋值。
故,在局部作用域中,若想使用外部命名空间中的变量,应使用 global 或 nonlocal 关键字进行声明。
GsxxInRnb
993***819@qq.com
参考地址
fenglu
250***819@qq.com
楼上讲的结论是对的,但中间的逻辑是不对的。
运行后会报错:
这里说的很清楚啊,压根不是对全局变量赋值导致的错误,而是因为通过“a=b”定义了局部变量a,但是局部变量a在前一句“b=a+1”中被引用了,也就是说先使用,然后才定义的,这里的“b=a+1”中a被解析成了局部变量。
那为什么去掉“a=b”就没问题了呢?
因为去掉之后就不存在局部变量a的定义了,“b=a+1”中a被解析成全局变量a。