1 python中“//”是一个算术运算符,表示整数除法,它可以返回商的整数部分(向下取整)。
2 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的;
setattr(object, name, value)
- >>>class A(object):
- ... bar = 1
- ...
- >>> a = A()
- >>> getattr(a, 'bar') # 获取属性 bar 值
- 1
- >>> setattr(a, 'bar', 5) # 设置属性 bar 值
- >>> a.bar
- 5
如果属性不存在会创建一个新的对象属性,并对属性赋值:
- >>>class A():
- ... name = "runoob"
- ...
- >>> a = A()
- >>> setattr(a, "age", 28)
- >>> print(a.age)
- 28
3 Python 中的isinstance()函数,isinstance()是Python中的一个内建函数。是用来判断一个对象的变量类型;
语法:
isinstance(object, classinfo)
如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False;
与type()区别
type() 不会认为子类是一种父类类型,不考虑继承关系;
isinstance() 会认为子类是一种父类类型,考虑继承关系;
如果要判断两个类型是否相同推荐使用 isinstance();
- >>> isinstance(1, int)
- True
- >>> isinstance(1.0, float)
- True
- >>>isinstance(1,(int,float))
- True
- >>> class Myclass:
- pass
- >>> test = Myclass()
- >>> isinstance(test, Myclass)
- True
4 json Python模块中的模块提供了一种称为dump()
它将Python对象转换为适当的json对象
5 eval()函数
其作用就是把数据还原成它本身或者是能够转化成的数据类型:
将字符串string对象转化为有效的表达式参与求值运算返回计算结果;
- >>> s='8*8'
- >>> eval(s)
- 64
- >>> eval('2+5*4')
- 22
- >>> x=1
- >>> y=4
- >>> eval('x+y')
- 5
- >>> eval('98.9')
- 98.9
- >>> eval('9.9\n')
- 9.9
- >>> eval('9.9\n\t\r \t\r\n')
- 9.9
eval可以将字符串转换成字典,列表,元组;
- >>> l = "[2,3,4,5]"
- >>> ll=eval(l)
- >>> ll
- [2, 3, 4, 5]
- >>> type(ll)
- <type 'list'>
- >>> d="{'name':'python','age':20}"
- >>> dd=eval(d)
- >>> type(dd)
- <type 'dict'>
- >>> dd
- {'age': 20, 'name': 'python'}
- >>> t='(1,2,3)'
- >>> tt=eval(t)
- >>> type(tt)
- <type 'tuple'>
- >>> tt
- (1, 2, 3)
6 ast.literal_eval()
literal_eval()函数:则会判断需要计算的内容计算后是不是合法的Python类型,如果是则进行运算,否则就不进行运算;
出于安全考虑,对字符串进行类型转换的时候,最好使用ast.literal_eval()