进制转换
1. chr() #unicode编码
用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
返回值是当前整数对应的 ASCII 字符。
原型:chr(i)
i -- 可以是10进制也可以是16进制的形式的数字。
2. ord() #chr()反操作
它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,
如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
原型:ord(c)
c -- 字符。
3. bin() #转化为ob开头的二进制字符
返回一个整数 int 或者长整数 long int 的二进制表示。返回字符串。
原型:bin(x)
x -- int 或者 long int 数字
4. hex() #转化为ox开头的十六进制字符
hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。
原型:hex(x)
x -- 10进制整数
5. ascii() #可打印表示对象,类似于 repr()
ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符。 生成字符串类似 Python2 版本中 repr() 函数的返回值。
原型:ascii(object)
object -- 对象。
6. oct() # 转化为0o开头的八进制字符
oct() 函数将一个整数转换成8进制字符串。
原型:oct(x)
x -- 整数。
面向对象相关
以下函数参数:
object -- 对象。
name -- 字符串,对象属性。
value -- 属性值。
1. setattr(object, name, value) #为对象设置属性,如果属性不存在会创建一个新的对象属性,并对属性赋值。
2. delattr(object, name) # 删除命名的属性
3. getattr(object,name) #获取属性的取值,如果对象无此属性,会抛异常
4. getattr(object,name, 123) #即便无此属性,也不会抛异常,会返回123
5. hasattr(object,name) # 判断name属性是否属于object
6. isinstance(object, classinfo) #判断object是否为classinfo的实例。
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
如果对象的类型与参数 classinfo 的类型相同则返回 True,否则返回 False。。
原型:isinstance(object, classinfo)
object -- 实例对象。
classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
7. issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
如果 class 是 classinfo 的子类返回 True,否则返回 False。
原型:issubclass(class, classinfo)
class -- 类。(注意:这里不是实例对象)
classinfo -- 类。
8. type()
如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
原型:
type(object)
type(name, bases, dict)
参数
name -- 类的名称。
bases -- 基类的元组。
dict -- 字典,类内定义的命名空间变量。
返回值
一个参数返回对象类型, 三个参数,返回新的类型对象。
X = type('X', (object,), dict(a=1)) # 产生一个新的类型 X
等同于:
class X(object):
a = 1
9. super() 函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,
但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
原型:
super(type[, object-or-type])
type -- 类。
object-or-type -- 类,一般是 self
Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :
10 . property() #特性相关,@property标记为属性
property() 函数的作用是在新式类中返回属性值。
原型:
class property([fget[, fset[, fdel[, doc]]]])
fget -- 获取属性值的函数
fset -- 设置属性值的函数
fdel -- 删除属性值函数
doc -- 属性描述信息
11. vars() # 返回对象的属性和属性值的字典对象。如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。
原型:
vars([object])
object -- 对象
12. classmethod() # 转化方法为类方法
classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数。
可以来调用类的属性,类的方法,实例化对象等。
原型:
classmethod
13. staticmethod() 返回函数的静态方法。
该方法不强制要求传递参数,如下声明一个静态方法:
原型:
staticmethod(function)
class C(object):
@staticmethod
def f(arg1, arg2, ...):
...
以上实例声明了静态方法 f,从而可以实现实例化使用 C().f(),当然也可以不实例化调用该方法 C.f()。