小学生绞尽脑汁也学不会的python(反射)

1. issubclass, type, isinstance

issubclass 判断xxxx类是否是xxxx类的子类

type 给出xxx的数据类型. 给出创建这个对象的类

isinstance 判断xxx对象是否是xxx类型的

class Animal:

pass

class Cat(Animal):

pass

class BoSiCat(Cat):

pass

print(issubclass(Cat, Animal)) # 判断第一个参数是否是第二个参数的后代

print(issubclass(Animal, Cat))

print(issubclass(BoSiCat, Animal)) # True

# class Animal:

# pass

#

# class Cat(Animal):

# pass

#

# class BoSiCat(Cat):

# pass

#

# c = Cat()

# print(type(c)) # 比较精准的给出对象的类

# 计算a+b的结果并返回. 两个数相加

# def add(a, b):

# if (type(a) == int or type(a) == float) and (type(b) == int or type(b) == float):

# return a + b

# else:

# print("算不了")

#

# print(add("胡汉三", 2.5))

class Animal:

pass

class Cat(Animal):

pass

class BoSiCat(Cat):

pass

# a = Animal()

# print(isinstance(a, Animal)) # 自己类可以判断

# print(isinstance(a, Cat)) # 子类不能判断

c = BoSiCat()

print(isinstance(c, Animal)) # True 子类的对象可以当成父类的类型来看.

# isinstance判断的是对象是否是xxx家族体系的内容. 往上找

lst = "马化腾"

print(type(lst.__iter__()))

2. 如何分辨方法和函数.

在外面定义的函数一定是函数

在类中:

1. 实例方法: 如果是对象访问.方法,, 如果是类名访问是函数

2. 静态方法: 都是函数

3. 类方法: 都是方法

如果想要用程序来判断. 需要引入两个模块

from types import FunctionType, MethodType

isinstance()

def func():

print("我是func")

print(func) #

class Foo:

# 实例方法: 对象.方法 方法 类名.方法 函数

def chi(self):

print("我是吃")

@staticmethod # 都是函数

def static_method():

pass

@classmethod # 都是方法

def class_method(cls): # 类对象的内容

pass

@property # 神马都不是. 变量

def age(self):

return 10

# 引入两个模块

from types import FunctionType, MethodType

def haha(arg):

print(isinstance(arg, FunctionType)) # False

print(isinstance(arg, MethodType)) # True

haha(Foo.age)

# f = Foo()

# print(f.chi) # >

# Foo.chi(f)

# print(Foo.chi) #

#

# print(f.static_method) #

# print(Foo.static_method) #

#

# print(f.class_method) # >

# print(Foo.class_method) # >

3. 反射(重点)

仅限于内存层面

重点:

hasattr(obj, str) 判断对象中是否包含了xxx(str)

getattr(obj, str) 从对象中获取xxxx(str)

次重点:

setattr(obj, str, value) 给对象设置xxxx(str)属性值(value)

delattr(obj, str) 从对象中删除xxxxx(str)信息

class Person:

def __init__(self, name):

self.name = name

self.age = None

def chi(self):

print("人喜欢吃东西%s" % self.name)

p = Person("刘伟")

setattr(p, "name", "大阳哥") # 动态的给对象设置属性和值

setattr(p, "age", 18) # 很少用. 慎用

print(p.age)

delattr(p, "age")

print(p.age)

# p.chi()

# val = input("请输入你想让刘伟执行的动作:")

# if hasattr(p, val):

# getattr(p, "name")

# func = getattr(p, val)

# func()

python学不会的表情包-小学生绞尽脑汁也学不会的python(反射)相关推荐

  1. python画动态表情包_真香!一行Python代码,帮你制作小姐姐的表情包,靠谱吗?...

    原标题:真香!一行Python代码,帮你制作小姐姐的表情包,靠谱吗? (我的IU女神) 对于小姐姐的动态表情包,相必我们大多数人都不会拒绝,而且都会选择默默的将其收藏(不要问我怎么知道的),一方面小姐 ...

  2. python恶搞表情包-Python自动生成表情包,python在手,从此斗图无敌手

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

  3. 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...

    原标题:自从会了Python在群里斗图就没输过,Python批量下载表情包! 导语 最近图慌,于是随便写了个表情包批量下载的脚本,没什么技术含量,纯娱乐性质. 让我们愉快地开始吧~ 开发工具 Pyth ...

  4. python 文本框不能放表情_用Python自动生成表情包,生活不易多才多艺!

    "一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--表情包!!!!表情包不仅仅是一种符号,更是一种文化:是促进社交乃至社会发展的动力之一,就像懒. 我们坚持 ...

  5. python从入门到入土表情包-Python自动生成表情包,python在手,从此斗图无敌手

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

  6. python做动态表情包下载_用 Python 开发一个【GIF表情包制作神器】

    之前小帅b写过这样一篇教程然后,好多人表示:虽然存了很多表情包但似乎还不是很过瘾因为它不可以自己来定制我们可不可以根据一些表情素材然后自己制作专属表情包呢像这样 本来小帅b想自己实现一个表情包制作器后 ...

  7. Python自动生成表情包 斗图再无对手!

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

  8. Python自动生成表情包,从此斗图无敌手!

    作为一个数据分析师,应该信奉一句话--"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--表情包!!!! 表情包不仅仅是一种符号,更是一种文化,是促进社交乃 ...

  9. 一个很皮的实践 Python自动生成表情包

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

最新文章

  1. 可以用计算机存储的东西
  2. MySQL数据库备份之主从同步配置
  3. linux修改磁盘盘符,debian下修改磁盘阵列盘符
  4. VTK:PolyData之MiscPointData
  5. [转载]unix环境高级编程备忘:理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID...
  6. bob-tong 字符串函数之Strtok()函数
  7. 用户(三次)登录--作业小编完成
  8. kafka : CommitFailedException Commit cannot be completed since the group has already rebalanced
  9. 从vCenter 6.7升级到7.0
  10. jpa jql 时间范围查询_SpringBoot整合JPA案例
  11. stringbuffer java API_StringBuffer类
  12. 航信3.0开票模拟系统
  13. java.lang.IllegalStateException: stream has already been operated upon or closed
  14. 百度网盘:未知错误播放失败1000
  15. 深度学习项目,使用python进行表情识别,pytorch应用
  16. 【iOS】设置背景渐变色
  17. Java语言概述以及环境搭建
  18. 它来了,任务调度框架 Quartz保姆级教程奉上
  19. 神经网络与BP算法(代码实现)
  20. Hexo个人博客绑定域名

热门文章

  1. 数据结构和算法系列5 七大排序之冒泡排序和快速排序
  2. (四)工况曲线构建 2019年研究生数学建模D题《汽车行驶工况构建》
  3. Maven项目pom.xml报错
  4. PHP中全局变量$_POST[]和$_GET[]
  5. Entity相互关系
  6. webdriver --API--(java版) the second part
  7. 移动应用交互设计中合理使用动态
  8. FireDac 的数据库批量语句提交(高效)
  9. 区别ie8和ie9的方法
  10. 克服游戏运营中IB的长尾挑战