# 一 python面向对象-内置函数(issubclass(), type(), isinstance())
# issubclass 判断xxxx类是否是xxxx类的子类
class egg:
pass
class eegg(egg):
pass
class yuneegg(eegg):
pass dan = egg()
edan = eegg()
shouyunedan = yuneegg() print(issubclass(eegg, egg)) # True 鹅蛋继承蛋的属性,是子类
print(issubclass(yuneegg,egg)) # True .受孕鹅蛋也是蛋的子类,都都蛋蛋
print(issubclass(eegg, yuneegg)) # False 鹅蛋也有没受孕的 # type 给出xxx的数据类型. 给出创建这个对象的类
print(type(dan) and type(edan)) # False 返回创建他的类,不找子类或者父类,只找创造的类 # isinstance 判断xxx对象是否是xxx类型的 判断是不是一个类的体系,只找直系向上的,不找分支和子类
print(isinstance(dan, egg)) # True ,有蛋创建的
print(isinstance(edan,egg)) # True ,鹅蛋也是单,是他的子类
print(isinstance(shouyunedan, egg)) # TRUE受孕鹅蛋还是蛋,可以找祖宗
print(isinstance(dan, eegg)) # FALSE 蛋不一定是鹅蛋,也许是鸭蛋 # 二 2. 如何分辨方法和函数.
# 在类外面定义的函数一定是函数
# 在类中:
# 1. 实例方法: 如果是对象访问.方法,, 如果是类名访问是函数
# 2. 静态方法: 都是函数
# 3. 类方法: 都是方法
# 如果想要用程序来判断. 需要引入两个模块
# from types import FunctionType, MethodType
# isinstance()
from types import FunctionType,MethodType
class Animal:
def __init__(self, kemu, xueming):
self.kemu = kemu
self.xueming = xueming
def add(self):
return self.kemu + self. xueming
tiger = Animal("cat", "oldhu") print(isinstance(tiger.add, FunctionType))
print(isinstance(tiger.add, MethodType)) # 三
# 反射(重点)
# 仅限于内存层面(函数执行不改变源文件,只修改内存加载的信息)
# 重点:
# hasattr(obj, str)判断对象中是否包含了xxx(str)
import handler
a = hasattr(handler, "Base") #存在True, 不存在FALSE
b = hasattr(handler, "ali") #False
print(a)
print(b) # getattr(obj, str)从对象中获取xxxx(str)
c = getattr(handler, "Base") # 存在返回Base变量
# qita = getattr(handler, "aad")# 不能存在报错
c() # 次重点:
# setattr(obj, str, value) 给对象设置xxxx(str)属性值(value)
setattr(handler, "t", 12) # 不存在执行新增,存在执行修改变量t
print(handler.t) # delattr(obj, str)从对象中删除xxxxx(str) 信息
delattr(handler,"t") # 删除变量t
delattr(handler,"xxx") # 不存在报错
print(handler.t)

python---issubclass/type/isinstance/ 反射(内置函数getattr/delattr...)的更多相关文章

  1. Python学习(八) —— 内置函数和匿名函数

    一.递归函数 定义:在一个函数里调用这个函数本身 递归的最大深度:997 def func(n): print(n) n += 1 func(n) func(1) 测试递归最大深度 import sy ...

  2. python基础12_匿名_内置函数

    一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...

  3. 【python】dir(__builtins__)查看python中所用BIF(内置函数)

    dir(__builtins__)查看python中所用BIF(内置函数)

  4. 查看python内部模块命令,内置函数,查看python已经安装的模块命令

    查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m  ...

  5. [Python学习笔记-001] 内置函数getattr()

    如果某个实例foo有多个方法, 当对foo的每一个方法我们都需要使用try ... except ...进行包装的时候,内置函数getattr()可以用来精简代码. 1. getattr()的用法 # ...

  6. python入门(二):isinstance、内置函数、常用运算等

    1.    isinstance(变量名,类型)                           #判断什么类型 ps: 只支持输入两个参数,输入3个参数会报错 >>> isin ...

  7. Python 面向对象 (补充) , 反射 , 内置函数

    面向对象中内置函数 issubclass方法: 检查第一个参数是否是第二个参数的子子孙孙类     返回  :   是一个布尔值 class Base(object): pass class Foo( ...

  8. [Python笔记]第四篇:内置函数

    本篇主要内容:内置函数 函数 参考:https://docs.python.org/3.5/library/functions.html 内置函数列表 一.数学运算类 abs(x)求绝对值 >& ...

  9. python补充最常见的内置函数

    最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2. ...

随机推荐

  1. '新', '泽' - ImageMagick - UTF-8非最短形式及编码安全问题

    最近偶然发现,把软件放到 [新建文件夹]  中,ImageMagick 竟无法正常的加载图片了. 我去!什么情况? 抛出的错误是找不到相关的dll,软件中已对中文进行了utf-8编码,这几年来一直没发 ...

  2. 第六篇 - bs4爬取校花网

    环境:python3  pycharm 模块:requests  bs4  urlretrieve  os  time 第一步:获取网页源代码 import requests from bs4 imp ...

  3. 第二十二节,TensorFlow中RNN实现一些其它知识补充

    一 初始化RNN 上一节中介绍了 通过cell类构建RNN的函数,其中有一个参数initial_state,即cell初始状态参数,TensorFlow中封装了对其初始化的方法. 1.初始化为0 对于 ...

  4. Elastic 开发篇 javaAPI(4)

    1.解决精确匹配问题,如果不加配置,搜索农大,会搜出“农”“大”这两个字的匹配,我们要的是“农大”,那么好了,加上一个条件搞定: MatchQuery.Type.PHRASE 完整代码: packag ...

  5. zookeeper 介绍与集群安装

    zookeeper 介绍 ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization). ...

  6. java 中+的运算规则

    1.Java中的加法的运算优先级是从左往右的 2.字符串""隔壁跟的+号意思是字符串的连接 就不是加法了 3.'字符' 后面的+号意思是'字符'的ascall码值和后面的值相加 c ...

  7. Openldap命令详解

    Openldap 客户端常用管理命令 1.ldapadd -x: 简答认证方式 -W: 不需要在命令上写密码 ldapapp -x -D "cn=Manager,dc=suixingpay, ...

  8. Python 排序和numpy排序,得到排序后索引序列(及源list的序列)

    Python list 排序 & np list 排序 nums = [1.25, 0.98, 6.13, 7.62] li = np.array(nums) print(li) out = ...

  9. CSS3笔记3

    1.CSS的层叠性 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  10. Project facet Java version 1.8 not supported

    把其它的项目到自己的eclipse中后,进行运行项目之后,就会提示为“Project facet Java version 1.8 not supported”.   进行更改配置,进行右键项目就会弹 ...