Python基础
1. pass
- 占位符,程序未完成时编写结构占位,也可以用字符串代替,称为文档字符串
2. del
- 默认python在对象应用数为0时会自动垃圾回收删除对象,del语句只是解除绑定并删除引用的变量,并不会删除值,python中是无法删除值的。
3. exec和eval
-
exec把字符串当成python代码进行执行,可以动态创建python代码,但是会有很严重的潜在安全漏洞
>>> str_command = "print 'hello world!'" >>> exec str_command hello world!
python3中exec是函数
-
安全的做法是提供一个命名空间或称为作用域,使用通过增加in 来实现
>>> from math import sqrt >>> scope = {} >>> exec 'sqrt = 1' in scope >>> sqrt(4) 2.0 >>> scope['sqrt'] 1
-
eval计算python表达式,同样也不安全,同样可以使用命名空间
>>> scope = {} >>> scope['x'] = 2 >>> scope['y'] = 3 >>> eval('x * y', scope) 6 # exec和eval的作用域可以相互使用 >>> scope = {} >>> exec 'x = 2' in scope >>> eval('x * x', scope) 4
4. 类型检测
名称 | 含义 |
---|---|
type(obj) | 返回变量类型 |
isinstance(obj, class) | 检测对象是否是类的实例 |
issubclass(C, B) | 检查是否为另一个类的子类 |