如何定义和使用Python中常量一、访问字典的元素使用dobj.get(key, somethingelse),如果对应key值元素不存在 , 你将会得到somethingelse值,例如“not found”不要使用dobj[key],因为如果key对应元素不存在,则会产生KeyError异常,这样必须使用try...except来封装二、名字空间中的属性可以通过字典__dict__来访问__setattr__负责处理属性赋值,其内进行赋值时要使用self.__dict__[attr] = value以防止递归三、sys.modules是一个字典,它包含了从Python开始运行起,被导入的所有模块 。键字就是模块名,键值就是模块对象 。请注意除了你的程序导入的模块外还有其它模块 。Python在启动时预先装入了一些模块,如果你在一个Python IDE环境下,sys.modules包含了你在IDE中运行的所有程序所导入的所有模块定义class _const(object):class ConstError(TypeError): passdef __setattr__(self, name, value):if self.__dict__.has_key(name):raise self.ConstError, "Cant rebind const(%s)" % nameself.__dict__[name] = valuedef __delattr__(self, name):if name in self.__dict__:raise self.ConstError, "Cant unbind const(%s)" % nameraise NameError, nameimport syssys.modules[__name__] = _const()使用import constconst.value = https://www.04ip.com/post/somevalueconst.value = newvalue # 产生异常const.ConstError技巧1、使用__setattr__来控制重新绑定2、sys.modules[name]得到的是模块对象,通过模块对象可以访问其模块属性;而Python不会进行严格的类型检测 , 所以直接将一个 _const类对象加入sys.modules字典,而__name__的值为对应模块const的名字const,通过 sys.modules[__name__] = _const()用类对象替换模块对象,将对应的名字空间加以限制,当使用import const时 , 会发生sys.modules[const] = _const();而访问const.attrvalue时会发生sys.modules[const].attrvalue,即 _const().attrvalue
如何查看 Python 全部内置变量和内置函数?查看python内置函数的方法:1、打开Python IDLE编辑器;2、输入" dir(__builtins__)"命令python输入函数常量,按下回车键(Enter)得到Python全部内置变量和函数 。
如何查看 Python 全部内置变量和内置函数?
1 如图,打开 Python IDLE,python输入函数常量我用的 是 Python 3.7 , 界面有个性定制 。你的版本不同 , 界面有差异 , 但是操作方法应该是一样的 。
2 输入 dir(__builtins__)
按下回车键(Enter) 。
3 也可以:
import builtins
dir(builtins)
按下回车键(Enter) 。
得到的结果和 dir(__builtins__) 是一样的 。
4 那么这返回的一大堆到底是什么东西?
可以看到,返回的结果是以 [ 开头以 ] 结尾,说明是个列表 , 我们看看这列表里一共有多少个元素?
输入:
len(dir(__builtins__))
得到一个数字 , 154,说明当前版本的 Python 内置的常量和函数总数是 154。
5 我们再重新输出一下这个列表,逐个打印出来,更好看一点 。
for item in dir(__builtins__):
print(item)
按下两次回车键(Enter) 。按照默认的字母顺序,先是大写字母 A-Z,然后是下划线(_)开头的,然后是小写字母 a-z ,为什么是这个顺序?因为按照 ASCII 码表 , 表示小写字母的数字比表示大写字母的数字要大,而表示下划线(_)的数字居中,所以如此 。
6 print() 就是 Python 3 的默认函数 。我们试试:
print('Hello World')
builtins.print('Hello World')
__builtins__.print('Hello World')
运行结果如下,可以看到,结果是一样的 。
dir()本身就是 Python 的内置函数,利用它,我们可以查看对象的全部方法和属性,对于掌控全局 , 了解全貌很有用 。
课程推荐:Python快速教程之从入门到精通
推荐阅读
- linux命令抓包工具,linux命令行切换桌面命令
- excel如何统计区间,excel如何统计区间分布
- php根据字段统计数据 php根据字段统计数据的方法
- 手机强制鸿蒙怎么设置,手机强制鸿蒙怎么设置的
- 日本便宜服务器租用,日本服务器购买
- 竞技游戏大会,2020竞技游戏
- php两个库表数据同步 php两个库表数据同步怎么办
- 怎么才算轻度使用手机充电,怎么才算轻度使用手机充电呢
- excel如何自建折线图,excel中怎么建立折线图