day19 反射
今日所学 :
1. isinstance , type , issubclass
2.如何区分方法和函数(代码)
3.反射(重要)
1. isinstance ,type ,issubclass
isinstance(椅子音死ten死): 判断你给的对象是否是xx类型的.(向上判断)
#应用
def cul(a,b): #次函数用来计算数字a和数字b的相加的结果
判断传递进来的对象必须是数字.int(整数) float (小数)
if (type(a)==int or type(a)==float) and (type(b)==int or type(b)==float):
return a+b
else:
print('对不起,你提供的数据无法进行计算')
print(cul(a,c))
type : 精准的判断返回xxx对象的数据类型
class Animal:
def eat(self):
print("刚睡醒吃点儿东西") class Cat(Animal):
def play(self):
print("猫喜欢玩儿") c = Cat()
a=animal()
print(isinstance(a,cat)) #不能向下判断 print(type(a)) # 返回 a的数据类型
print(type([]))
print(type(c)) # 精准的告诉你这个对象的数据类型
issubclass: 判断xxx是否是xxx的子类
print(issubclass(Cat, Animal))
print(issubclass(Animal, Cat))
2.如何区分方法和函数(代码)
在类中 :
实例方法: 如果是类名.方法 这时是函数
如果是对象.方法 这时是方法
静态方法: 类名.方法 和对象.方法都是函数
类方法: 类名.方法 和对象.方法都是方法
这里要引入一个模块
form types import MethodType,FunctionType
3 .反射 (重要)
反射主要涉及到了4个函数
getattr(a,b) 从a中获取到b数据
setattr(a,b,c) 将a中的b更改为c(设置a中的b属性为c)
hasattr(a,b) 判断a中是否存在b数据
delattr(a,b) 删除a中b的数据(不是将原数据变成None)
day19 反射的更多相关文章
- Python全栈--目录导航
这里更新以Python语言作为基础,想要成为全栈工程师需要掌握的技能... Python基础语法 day01 初识Python day02 while循环 运算符和编码 day03 字符串 day04 ...
- 隐私泄露杀手锏 —— Flash 权限反射
[简版:http://weibo.com/p/1001603881940380956046] 前言 一直以为该风险早已被重视,但最近无意中发现,仍有不少网站存在该缺陷,其中不乏一些常用的邮箱.社交网站 ...
- Java学习之反射机制及应用场景
前言: 最近公司正在进行业务组件化进程,其中的路由实现用到了Java的反射机制,既然用到了就想着好好学习总结一下,其实无论是之前的EventBus 2.x版本还是Retrofit.早期的View注解框 ...
- 关于 CSS 反射倒影的研究思考
原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...
- 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议106~109)
建议106:动态代理可以使代理模式更加灵活 Java的反射框架提供了动态代理(Dynamic Proxy)机制,允许在运行期对目标类生成代理,避免重复开发.我们知道一个静态代理是通过主题角色(Prox ...
- 运用Mono.Cecil 反射读取.NET程序集元数据
CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...
- .NET面试题系列[6] - 反射
反射 - 定义,实例与优化 在面试中,通常会考察反射的定义(操作元数据),可以用反射做什么(获得程序集及其各个部件),反射有什么使用场景(ORM,序列化,反序列化,值类型比较等).如果答得好,还可能会 ...
- .NET基础拾遗(4)委托、事件、反射与特性
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- C++的性能C#的产能?! - .Net Native 系列五:.Net Native与反射
此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题.本文是第五个主题:.Net Native与反射. 向导文链接:<C++的性能C#的产能?! - .Net Native 系列 ...
随机推荐
- Python编码简要说明
●python2默认编码:ASCII编码 达到正确显示,程序需要编码转换: UTF-8 -- >decode解码 --> Unicode Unicode -- > encode编码 ...
- JAVA基础知识总结:一到二十二全部总结
>一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...
- php set_time_limit()的作用是什么
php set_time_limit()用法测试 一.总结 一句话总结:在php中set_time_limit函数是用来限制页面执行时间的,如我想把一个php页面的执行时间定义为5秒就可以set_ti ...
- MySQL 8.0 安装时 Authentication Method
1. 使用强密码加密授权(推荐) 8.0提供的心的授权方式,采用SHA256基础的密码加密方法. 但是需要新版本的connector,目前和Connector/J最新的时8.0 目前8.0的连接器和使 ...
- 如何有效地使用t-SNE | How to Use t-SNE Effectively
熟练使用PCA和tSNE,彻底理解底层的原理是非常有必要的. 参考:How to Use t-SNE Effectively Real-time tSNE Visualizations with Te ...
- 2017-2018-2 20165303 实验三《Java面向对象程序设计》实验报告
实验三 敏捷开发与XP实践-1 实验要求 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参 ...
- 学习Py——自己模拟写的一个Range功能
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "loki" # function: Modeled range ...
- LeetCode--345--反转字符串中的元音字母
问题描述: 编写一个函数,以字符串作为输入,反转该字符串中的元音字母. 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: &quo ...
- EventBus 3.0使用相关
一 引入方法 可以去github的官网中下载EventBus的相关资源 地址:https://github.com/greenrobot/EventBus 当然还有他的官方网站 http://gre ...
- ncnn框架
1.下载和编译ncnn git clone https://github.com/Tencent/ncnn cd ncnn mkdir build && cd build cmake ...