首页 技术 正文
技术 2022年11月20日
0 收藏 991 点赞 4,458 浏览 1006 个字

一.首先来看isinstance:

a=6isinstance(a,int)   #返回Tureisinstance(a,str)   #返回Falseisinstance (a,(str,int,list))    # 是元组中的一个返回 True

二.接下来看Type函数:

type(666) == int #返回 Turetype(666) == list #返回Falsetype({"w":"1","q":"2"})==dict  #返回 Turetype([1,2,3])==list  #返回 Ture

三.再而来看两者区别:

 class A:
pass
class B(A): #B类继承A类
pass isinstance(A(),A) #ture type(A())==A #ture isinstance(B(),A) #ture type(B())==A #false
  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

四.MethodType函数

from types import MethodType
#创建一个方法
def set_age(self, age):
self.age = age
#创建一个类
class Student(object):
pass
#以上为公共代码

s_out = Student()#创建一个外部的set_age方法链接到Student内
#将set_age方法绑定到对象s_out上
#MethodType第一个参数是绑定的方法
#第二个是绑定的对象
#第三个是绑定的类名可以忽略
s_out.set_age = MethodType(set_age,s_out,Student)#调用方法
s_out.set_age(666) #返回值为 666
print s_out.age#错误示范 没有把方法绑定到对象 导致错误
s_wrong = Student()
s_wrong.set_age(100)
print s_wrong.age
#将set_age方法绑定到类Student上
Student.set_age = MethodType(set.age,None,Student)s1=Student()
s2=Student()s1.set_age(666)
s2.set_age(777)print s1.age
print s2.age#返回值为666 777 成功调用#如果在绑定的时候第二个参数没有写None的话 s2属性就会覆盖s1 只输出777
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905