铁乐学

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相关推荐

  1. 铁乐学python_Day42_锁和队列

    铁乐学python_Day42_锁和队列 例:多个线程抢占资源的情况 from threading import Thread import timedef work():global ntemp = ...

  2. 乐学偶得《零基础Python入门编程全栈量化AI》课程238课的详细完整代码怎么样实现?靠谱答案来啦啦啦╭(╯^╰)╮

    学习打卡内容搬运于乐学偶得公众号:乐学Fintech ,仅用于我学习打卡之用.也在此和学习Python的小伙伴分享~ 我学习的是乐学偶得<零基础Python入门编程全栈量化AI>课程,属于 ...

  3. 铁打的Python连续3年第一,PHP跌出前十:IEEE Spectrum 2019编程语言排行榜出炉

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI Python势头不减,依旧第一,而且进一步拉开了与其他语言的差距. 这一结果,来自IEEE Spectrum2019年度编程语言排行榜. ...

  4. python词汇网络流行语_流水的语言,铁打的Python!

    "流水的语言,铁打的 Python" 一.Python 对新手极其友好 二.Python 具备大数据处理能力 三.Python 拥有惊人数量的库 四.Python 可靠并且高效 五 ...

  5. 都说“流水的语言,铁打的Python”,现在的Python就业21.8K薪资算高吗?零基础该怎么学?

    前言 常言道: "流水的语言,铁打的 Python",2019年,Python已经"睥睨天下,傲视群雄"了,但你不知道的是,Python 其实并不年轻,它的第一 ...

  6. 乐学python_铁乐学python_shelve模块详解

    python序列化模块-shelve模块详解 shelve:vt. 将(书等)放置在架子上:搁置,将某事放到一旁不予考虑:将-搁在一边:装搁架于: 个人感觉有点像字典缓存?暂时搁置到一旁的意思? 研究 ...

  7. 21day学通python_铁乐学python_day21_面向对象编程3

    抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...

  8. 乐学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 = ...

  9. 乐学python视频资源_铁乐学python_day04-作业

    1,写代码,有如下列表,按照要求实现每一个功能 li = ['alex', 'wusir', 'eric', 'rain', 'alex'] 计算列表的长度并输出 print(len(li)) 答:结 ...

最新文章

  1. PTA数据结构与算法题目集(中文)7-25
  2. Eclipse中快速为类提供构造器、get()、set()方法、重写toString()、hasCode()、equals()等
  3. 机器学习(1.机器学习概述、数据集的组成以及机器学习的特征工程)
  4. rfid4-写成platform驱动
  5. 面试题:聊聊Unix与Java的IO模型?
  6. 设计模式4-创建型模式-Prototype模式
  7. python 函数 全局变量_python3函数内全局变量使用global
  8. vue瀑布流demo_面试加分企业级Vue瀑布流
  9. ssis导入xml_SSIS XML目标
  10. ipad文献管理软件_五款常用的文献管理神软件
  11. C#+Halcon调用Basler相机
  12. PLC有几种编程语言以及它们的特点是什么
  13. 微信小程序制作FC模拟器,从入坑到放弃
  14. 斯坦福课程Knowledge Graphs-What is a Knowledge Graph?
  15. 上市商业银行手机银行App月活增长及应用对标分析
  16. 数学 余式定理 简介
  17. php 坦克大战,js坦克大战以实现炮弹击中目标消失并且记分
  18. 微信小程序开发常见问题总结
  19. exadata的infiniband交换机的ilom
  20. 基于深度学习的分词模块 对新闻的分词准确率高达96%以上

热门文章

  1. VirtualBox设置共享目录(主机win7,虚拟机Ubuntu)
  2. Python学习札记(十三) Function3 函数参数二
  3. 【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径(四)...
  4. Linux ALSA 图解
  5. 对比一段ADC键值读取的代码
  6. 每日一题(10)—— 数组与指针
  7. java创建一个未知长度的数组_Java数组的创建操作
  8. ERROR 2384 — [ main] o.s.boot.SpringApplication : Application run failed
  9. websocket 获取ip_Spark+Kafka+WebSocket+eCharts实时分析-完全记录(1)
  10. Web框架——Flask系列之蓝图Blueprint(二十一)