博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定制自己的数据类型
阅读量:6954 次
发布时间:2019-06-27

本文共 1897 字,大约阅读时间需要 6 分钟。

1,python中内建函数isinstance的用法

 

语法:isinstance(object,type)

其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。

其返回值为布尔型(True or flase)。

 

若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。

   a = "b"

>>> isinstance(a,str)
True
>>> isinstance(a,int)
False
>>> isinstance(a,(int,list,float))
False
>>> isinstance(a,(int,list,float,str))
True

2,内置函数issubclass的用法

语法:issubclass(sub,super)

检查sub类是不是super类的派生类

class A:

  pass

class B:

  pass

print issubclass(B,A)

B是A类的子类,返回True,不是则返回False

3,反射

pychon中的反射功能是由以下四个内置函数提供:

hasattr,getattr,setattr,delattr

improt(module_name),改四个函数分别用于对对象内部执行:检查是否含有有某成员,获取成员,设置成员,删除成员,导入模块以字符串方式导入。

class Foo(object):      def __init__(self):        self.name = 'python'      def func(self):        return 'func'  obj = Foo()  # #### 检查是否含有成员 ####hasattr(obj, 'name')hasattr(obj, 'func')  # #### 获取成员 ####getattr(obj, 'name')getattr(obj, 'func')  # #### 设置成员 ####setattr(obj, 'age', 18)setattr(obj, 'show', lambda num: num + 1)  # #### 删除成员 ####delattr(obj, 'name')delattr(obj, 'func')

4,内置atter

__getattr__

从对象中读取某个属性时,首先需要从self.__sicts__中搜索该属性,再从__getattr__中查找。

 

class A(object):      def __init__(self):          self.name = 'from __dicts__: zdy'        def __getattr__(self, item):          if item == 'name':              return 'from __getattr__: zdy'          elif item == 'age':              return 26    a = A()  print a.name # 从__dict__里获得的  print a.age # 从__getattr__获得的

 

__setattr__

"__setattr__"函数是用来设置对象的属性,通过object中的__setattr__函数来设置属性:

class A(object):    def __setattr__(self, *args, **kwargs):          print 'call func set attr'          return object.__setattr__(self, *args, **kwargs)

 

__delattr__

"__delattr__"函数式用来删除对象的属性:

 

 

class A(object):    def __delattr__(self, *args, **kwargs):          print 'call func del attr'          return object.__delattr__(self, *args, **kwargs)

 

 

转载于:https://www.cnblogs.com/fengwu007/p/6757691.html

你可能感兴趣的文章
dhcpcd守护进程分析【转】
查看>>
Linux - 理不清的权限chmod与chown区别
查看>>
TCP协议疑难杂症全景解析
查看>>
redis 1
查看>>
如何找回电脑重新分区丢失的数据
查看>>
Python安装pycurl失败,及解决办法
查看>>
cocos2d的常用动作及效果总结之四:Special Actions
查看>>
ASP.NET MVC
查看>>
[ lucene扩展 ] MoreLikeThis 相似检索
查看>>
如果返回结构体类型变量(named return value optimisation,NRVO)
查看>>
C# 多线程详解 Part.02(UI 线程和子线程的互动、ProgressBar 的异步调用)
查看>>
基于shiro授权过程
查看>>
struts2文件上传
查看>>
JQuery对象和DOM对象的区别与转换
查看>>
wampserver变橙色,apache 服务无法启动!问题解决小记(安装失败亦可参考)
查看>>
使用 Toad 实现 SQL 优化
查看>>
代理模式小记【原创】
查看>>
.NET开发技巧——从Winform穿越到WPF
查看>>
2135亿背后的双11项目协作怎么玩?
查看>>
DRDS SQL 审计与分析——全面洞察 SQL 之利器
查看>>