乐学python_【IT专家】铁乐学python
铁乐学
python
2018/04/18 13
铁乐学
python_day23_
面向对象进阶
1_
反射
以下内容大部分摘自博客
cnblogs/Eva-J/
isinstance()
和
issubclass()
两者的返回值都是布尔值
isinstance()
能够检测到继承关系
type()
只能单纯的判
断类
isinstance()
判断一个对象和一个类有没有血缘关系
issubclass()
接收两个参数,前一个是子类名,后一个是父类名
如果返回
True,
说
明有父子
(
继承
)
关系。
isinstance(obj,cls)
检查
obj
是否是类
cls
的对象
class Foo(object): passobj = Foo()
#
实例化
isinstance(obj, Foo)issubclass(sub, super)
检查
sub
类是否是
super
类的派生
类
class Foo(object): passclass Bar(Foo): passissubclass(Bar, Foo)issubclass
可以追溯
到
更远的源头,例如:
class
tuple_A():
passclass
grandfather_B(tuple_A):
passclass
father_C(grandfather_B):
passclass
son_D(father_C):
passprint(issubclass(son_D,
tuple_A))
#
返回
True
,是不是很像吸血鬼家族呢?
1
什么是反射
反射的概念是由
Smith
在
1982
年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行
为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性
的研究。它首先被程序语言的设计领域所采用
,
并在
Lisp
和面向对象方面取得了成
绩。
2
python
面向对象中的反射:
通过字符串的形式操作对象相关的属性。
python
中的一切事物都是对象(都可以使用反射)
四个可以实现自省的函数:
下列方法
适用于类和对象(一切皆对象,类本身也是一个对象)
1
)
hasattr(*args, **kwargs)def hasattr(*args, **kwargs): # real signature unknown
Return whether
the
object
has an attribute with
the
given
name.
This
is done
by
calling
getattr(obj,
name)
and
catching
AttributeError.
pass2
)
getattr(object,
name,
default=None)def
getattr(object,
name,
default=None):
#
known
special
case
of
getattr
getattr(object, name[, default]) - value Get a named attribute from an object; getattr(x,
‘y’)
乐学python_【IT专家】铁乐学python相关推荐
- 铁乐学python_Day42_锁和队列
铁乐学python_Day42_锁和队列 例:多个线程抢占资源的情况 from threading import Thread import timedef work():global ntemp = ...
- 乐学偶得《零基础Python入门编程全栈量化AI》课程238课的详细完整代码怎么样实现?靠谱答案来啦啦啦╭(╯^╰)╮
学习打卡内容搬运于乐学偶得公众号:乐学Fintech ,仅用于我学习打卡之用.也在此和学习Python的小伙伴分享~ 我学习的是乐学偶得<零基础Python入门编程全栈量化AI>课程,属于 ...
- 铁打的Python连续3年第一,PHP跌出前十:IEEE Spectrum 2019编程语言排行榜出炉
乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python势头不减,依旧第一,而且进一步拉开了与其他语言的差距. 这一结果,来自IEEE Spectrum2019年度编程语言排行榜. ...
- python词汇网络流行语_流水的语言,铁打的Python!
"流水的语言,铁打的 Python" 一.Python 对新手极其友好 二.Python 具备大数据处理能力 三.Python 拥有惊人数量的库 四.Python 可靠并且高效 五 ...
- 都说“流水的语言,铁打的Python”,现在的Python就业21.8K薪资算高吗?零基础该怎么学?
前言 常言道: "流水的语言,铁打的 Python",2019年,Python已经"睥睨天下,傲视群雄"了,但你不知道的是,Python 其实并不年轻,它的第一 ...
- 乐学python_铁乐学python_shelve模块详解
python序列化模块-shelve模块详解 shelve:vt. 将(书等)放置在架子上:搁置,将某事放到一旁不予考虑:将-搁在一边:装搁架于: 个人感觉有点像字典缓存?暂时搁置到一旁的意思? 研究 ...
- 21day学通python_铁乐学python_day21_面向对象编程3
抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...
- 乐学python_铁乐学python_day01-作业
第一题:使用while循环输入 1 2 3 4 5 6 8 9 10 # 使用while循环输入 1 2 3 4 5 6 8 9 10 count = 0 while (True) : count = ...
- 乐学python视频资源_铁乐学python_day04-作业
1,写代码,有如下列表,按照要求实现每一个功能 li = ['alex', 'wusir', 'eric', 'rain', 'alex'] 计算列表的长度并输出 print(len(li)) 答:结 ...
最新文章
- PTA数据结构与算法题目集(中文)7-25
- Eclipse中快速为类提供构造器、get()、set()方法、重写toString()、hasCode()、equals()等
- 机器学习(1.机器学习概述、数据集的组成以及机器学习的特征工程)
- rfid4-写成platform驱动
- 面试题:聊聊Unix与Java的IO模型?
- 设计模式4-创建型模式-Prototype模式
- python 函数 全局变量_python3函数内全局变量使用global
- vue瀑布流demo_面试加分企业级Vue瀑布流
- ssis导入xml_SSIS XML目标
- ipad文献管理软件_五款常用的文献管理神软件
- C#+Halcon调用Basler相机
- PLC有几种编程语言以及它们的特点是什么
- 微信小程序制作FC模拟器,从入坑到放弃
- 斯坦福课程Knowledge Graphs-What is a Knowledge Graph?
- 上市商业银行手机银行App月活增长及应用对标分析
- 数学 余式定理 简介
- php 坦克大战,js坦克大战以实现炮弹击中目标消失并且记分
- 微信小程序开发常见问题总结
- exadata的infiniband交换机的ilom
- 基于深度学习的分词模块 对新闻的分词准确率高达96%以上
热门文章
- VirtualBox设置共享目录(主机win7,虚拟机Ubuntu)
- Python学习札记(十三) Function3 函数参数二
- 【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径(四)...
- Linux ALSA 图解
- 对比一段ADC键值读取的代码
- 每日一题(10)—— 数组与指针
- java创建一个未知长度的数组_Java数组的创建操作
- ERROR 2384 — [ main] o.s.boot.SpringApplication : Application run failed
- websocket 获取ip_Spark+Kafka+WebSocket+eCharts实时分析-完全记录(1)
- Web框架——Flask系列之蓝图Blueprint(二十一)