所谓的反射,就是通过字符串去访问类或对象成员,比如如果一个Student类有一个name对象属性,那么就可以通过一个"name"字符串去访问student对象的name属性

如python可以通过hasattr()函数来获取一个对象是否有某个属性

>>> class Student:
def __init__(self,name,age):
self.name = name
self.age = age

>>> s = Student("xiaobing",22)
>>> print s.name
xiaobing
>>> print s.age
22
>>> hasattr(s,"name")
True
>>> hasattr(s,"sex")
False
>>>

可以通过getattr()函数来获取对象的某个属性的值

>>> getattr(s,"name")
'xiaobing'
>>> getattr(s,"age")
22

可以通过setattr()函数去设置对象的属性的值

>>> setattr(s,"name","xiaoming")
>>> s.name
'xiaoming'
>>>

可以通过dir()函数获取对象拥有哪些成员

>>> dir(s)
['__doc__', '__init__', '__module__', 'age', 'name']
>>>

当然,类的函数也差不多,因为在python中类的函数和属性是同等地位的

python基础学习-反射相关推荐

  1. python自学用什么书好-适合python基础学习的好书籍

    分享几本python基础学习的书籍给大家 <Python编程:从入门到实践> 内容简介:本书是一本针对所有层次的Python 读者而作的Python 入门书.全书分两部分:第一部分介绍用P ...

  2. python心得体会-终于懂得python基础学习心得

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  3. python开发需要掌握哪些知识-Python基础学习需要掌握哪些知识

    1.1Python的对象 python的内置对象类型有很多,包括数字,字符串,列表,集合,元组,字典等等,在Python中,一切皆对象 pickle腌制--在Python中,如果有一些对象需要持久性存 ...

  4. Python基础学习-Python中最常见括号()、[]、{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho

    Python基础学习-Python中最常见括号().[].{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho ...

  5. python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了

    这似乎是一个如荼如火的行业,对于一直在思考着转行的我,提供了一个不错的方向. 这个行业当然就是python程序员,真正开始决定转行是在24岁的时候,到现在已经有三年多了,我从零开始,每天用业余两个小时 ...

  6. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

  7. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

  8. Python基础学习笔记之(一)

    Python基础学习笔记之(一) zouxy09@qq.com http://blog.csdn.net/zouxy09 前段时间参加微软的windows Azure云计算的一个小培训,其中Pytho ...

  9. 【Python基础学习】基本数据结构:列表、元组、栈、字典、集合与队列

    [Python基础学习]基本数据结构:列表.元组.栈.字典.集合与队列 Python的基本数据结构中,包含了列表.元组等一系列数组式数据结构,但各个结构各有不同.因此单独列出来,分析相同与不同 列表( ...

最新文章

  1. insightface和facenet效果+性能比较
  2. html让元素纵向排列,html – 如何使元素排列到父元素的外边缘
  3. OWC组件生成柱状图
  4. SQL SERVER 2005 进行XML查询
  5. TTS Text-to-speech(文字转语音)服务
  6. P1506 拯救oibh总部(染色+dfs)
  7. app访问java web_Java Web App体系结构
  8. navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
  9. winlogon病毒清除
  10. Effective java 第二章 对象 (2)
  11. 超级终端连接华为交换机_win8系统教你实现用超级终端连接华为交换机的超详细图文教程...
  12. PS、PR素材资源网站
  13. cdr软件百度百科_cdr软件是什么?cdr是什么软件?
  14. hibernate无法自动建表:ERROR: HHH000388
  15. 27岁程序员转职赏金猎人:一个漏洞10万美元,比工资香多了
  16. 【译】第十篇 Integration Services:高级事件行为
  17. 常用光学字符识别(OCR)软件比较
  18. 买低配车,更保值?!坊间有一句戏言:买车都要买低配
  19. Ubuntu 14.04(64位)+GTX970+CUDA8.0+Tensorflow配置 (双显卡NVIDIA+Intel集成显卡) ------本内容是长时间的积累,有时间再详细整理...
  20. 2021最新JDK 安装教程

热门文章

  1. Linux aarch64 编译 qemu 搭建实验平台
  2. ABAP数据字典和数据表的读取
  3. 数据库sql常见优化方案
  4. 网络安全知识竞赛题库及答案(多选题1-100题)
  5. 计算机中用函数排序,编写一个sort()函数,实现选择法排序,在主函数中输入10个整数,主函数调用sort()函数实现排序后将数据输出。...
  6. 职场必看的十部经典电影
  7. 修改MTK平台Android P系统支持系统A/B分区升级
  8. (2018)All-optical machine learning using diffractive deep neural networks
  9. 学会自我欣赏,将缺点变为有点
  10. 医院如何发送体检报告短信(附模板内容)