python学习笔记

 

 

内部函数访问外部变量搞蒙了 

1.内部函数,不修改全局变量可以访问全局变量

a = 10
def test():
    b = a + 2 #仅仅访问全局变量 a
    print(b)
test()

输出结果为:

12

2.内部函数,修改同名全局变量,则python会认为它是一个局部变量(同教程最后一个例子)

#!/usr/bin/python3
 
a = 10
def test():
    a = a + 1 #修改同名的全局变量,则认为是一个局部变量
    print(a)
test()

3.在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Unbound-LocalError

参考

https://www.runoob.com/note/34820

4.import a.b as b1

import b as b2

from a.b import var1

b模块包含var1 全局变量 三种方式获得的var1变量不同!注意导入方式

但 import a.b as b1 与 from a import b as b4  两种var1 相同

 

添加模块搜索路径

为了解决上述问题,需要添加模块搜索路径,可以使用以下几种方式:

1.动态增加路径

临时生效,对于不经常使用的模块,这通常是最好的方式,因为不必用所有次要模块的路径来污染 PYTHONPATH。

2.修改 PYTHONPATH 变量

永久生效,对于在许多程序中都使用的模块,可以采用这种方式。这将改变所有 Python 应用的搜索路径,因为启动 Python 时,它会读取这个变量,甚至不同版本的 Python 都会受影响。

3.增加 .pth 文件

永久生效,这是最简单的、也是推荐的方式。Python 在遍历已知的__特定目录__过程中,如果遇到 .pth 文件,便会将其中的路径加入到 sys.path 中,于是 .pth 中所指定的路径就可以被 Python 运行环境找到了。

上面提到的__特定目录__是通过site模块下的getsitepackages方法获得的,该方法返回一个路径组成的list:

import site
site.getsitepackages()

4. 关于几个路径

参看https://blog.csdn.net/rayouwo/article/details/89294214

参考:https://www.cnblogs.com/lipijin/p/4445301.html

https://www.jb51.net/article/133925.htm

4.配置类构造以及单例模式

https://www.cnblogs.com/huchong/p/8244279.html

 

参考https://www.bbsmax.com/A/KE5QwMGZzL/

这里讨论如何判断 key(键) 或者 value(值)是否在枚举中

from enum import Enum

class testEnum(Enum):

key1 = 0

key2 = 1

"key1" in testEnum.__members__

0 in testEnum._value2member_map_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值