Python3.6简单反射操作示例


Posted in Python onJune 14, 2018

本文实例讲述了Python3.6简单反射操作。分享给大家供大家参考,具体如下:

# -*- coding:utf-8 -*-
#!python3
# -----------------------
# __Author : tyran
# __Date : 17-11-13
# -----------------------
class Base:
  def __init__(self):
    self.name = 'aaa'
    self.age = 18
  def show(self):
    print(self.age)
# 通过getattr()找到对象的成员
base = Base()
v = getattr(base, 'name')
print(v) # aaa
func1 = getattr(base, 'show')
func1() # 18
# 通过hasattr()查找成员是否存在
print(hasattr(base, 'name')) # True
print(hasattr(base, 'name1')) # False
# 通过setattr()给对象添加成员
setattr(base, 'k1', 'v1')
print(base.k1)
delattr(base, 'k1') # v1
# print(base.k1) 报错AttributeError: 'Base' object has no attribute 'k1'
# -------------------------------------------------------------------------
# Class也是一个对象
class ClassBase:
  sex = 'male'
  def __init__(self):
    self.name = 'aaa'
    self.age = 11
  @staticmethod
  def show():
    print('I am static')
  @classmethod
  def c_method(cls):
    print(cls.sex)
sex_value = getattr(ClassBase, 'sex')
print(sex_value)
s_func = getattr(ClassBase, 'show')
s_func()
c_func = getattr(ClassBase, 'c_method')
c_func()
# 这些都没问题
setattr(ClassBase, 'has_girlfriend', True) # 添加静态成员
print(ClassBase.has_girlfriend) # True
# ---------------同理,模块也是对象-------------
# 我新建了一个模块s1.py,我把内容复制下来
# class S1:
#   def __init__(self):
#     self.name = 'aaa'
#     self.age = 22
#
#   def show(self):
#     print(self.name)
#     print(self.age)
#
#
# def func1():
#   print('page1')
#
#
# def func2():
#   print('page2')
# 一个类,两函数
import s1
s1_class = getattr(s1, 'S1', None)
if s1_class is not None:
  c1 = s1_class()
  c1.show()
  # aaa
  # 22
getattr(s1, 'func1')() # page1
f2 = 'func2'
if hasattr(s1, f2):
  getattr(s1, 'func2')() # page2

注释中说明的s1.py如下:

# -*- coding:utf-8 -*-
#!python3
class S1:
  def __init__(self):
    self.name = 'aaa'
    self.age = 22
  def show(self):
    print(self.name)
    print(self.age)
def func1():
  print('page1')
def func2():
  print('page2')
# 一个类,两函数

程序运行结果:

Python3.6简单反射操作示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
深入浅出分析Python装饰器用法
Jul 28 Python
一份python入门应该看的学习资料
Apr 11 Python
Python 一句话生成字母表的方法
Jan 02 Python
Python设计模式之代理模式实例详解
Jan 19 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
Python传递参数的多种方式(小结)
Sep 18 Python
python numpy库linspace相同间隔采样的实现
Feb 25 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
Python的logging模块基本用法
Dec 24 Python
Python音乐爬虫完美绕过反爬
Aug 30 Python
Python3.6日志Logging模块简单用法示例
Jun 14 #Python
Python实现的knn算法示例
Jun 14 #Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 #Python
Tensorflow 查看变量的值方法
Jun 14 #Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 #Python
TensorFlow的权值更新方法
Jun 14 #Python
python字符串常用方法
Jun 14 #Python
You might like
基于PHP的简单采集数据入库程序
2014/07/30 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
document.compatMode介绍
2009/05/21 Javascript
ExtJS 入门
2010/10/29 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
基于js中document.cookie全面解析
2017/09/14 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
python中的多重继承实例讲解
2014/09/28 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
教师旷工检讨书
2014/01/18 职场文书
伊琍体标语
2014/06/25 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
个人维稳承诺书
2015/05/04 职场文书
教育读书笔记
2015/07/02 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书