Python isinstance() 函数
描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。 语法 以下是 isinstance() 方法的语法: isinstance(object, classinfo) 参数 object -- 实例对象。 classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。 返回值 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。 实例 以下展示了使用 isinstance 函数的实例: >>>a = 2 >>> isinstance (a,int) True >>> isinstance (a,str) False >>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True True type() 与 isinstance()区别: class A: pass class B(A): pass isinstance(A(), A) # returns True type(A()) == A # returns True isinstance(B(), A) # returns True type(B()) == A # returns False
Python getattr() 函数 Python 内置函数 Python 内置函数 描述 getattr() 函数用于返回一个对象属性值。 语法 getattr 语法: getattr(object, name[, default]) 参数 object -- 对象。 name -- 字符串,对象属性。 default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。 返回值 返回对象属性值。 实例 以下实例展示了 getattr 的使用方法: >>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 >>> getattr(a, 'bar2') # 属性 bar2 不存在,触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'A' object has no attribute 'bar2' >>> getattr(a, 'bar2', 3) # 属性 bar2 不存在,但设置了默认值 3 >>> 获取对象属性后返回值可直接使用: >>> class A(object): ... def set(self, a, b): ... x = a ... a = b ... b = x ... print a, b ... >>> a = A() >>> c = getattr(a, 'set') >>> c(a='1', b='2') 2 1 >>>
Python setattr() 函数 Python 内置函数 Python 内置函数 描述 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。 语法 setattr() 语法: setattr(object, name, value) 参数 object -- 对象。 name -- 字符串,对象属性。 value -- 属性值。 返回值 无。 实例 以下实例展示了 setattr() 函数的使用方法: 对已存在的属性进行赋值: >>>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 >>>