Python根据字符串调用函数过程解析


Posted in Python onNovember 05, 2020

1.使用 getattr(object, name, default=None) 获取属性

# -*- encoding=utf-8 -*-
class Test:
  def __init__(self):
    self.name = '莉莉'
    self.age = 18
if __name__ == '__main__':
  test = Test()
  name = getattr(test, 'name') # 获取属性
  print(name)
  age = getattr(test, 'age') # 获取属性
  print(age)
  none = getattr(test, 'none', 'none') # 获取不存在的属性,需要添加 default,否则抛异常
  print(none)

运行

莉莉
18
none

2.使用 getattr(object, name, default=None) 获取方法

# -*- encoding=utf-8 -*-
class Test:
  def __init__(self):
    self.name = '莉莉'
    self.age = 18

  def get_name(self):
    print('年龄是:{}'.format(self.name))
    return self.name
if __name__ == '__main__':
  test = Test()
  get_name = getattr(test, 'get_name') # 获取方法
  print(get_name)
  get_name() # 调用方法

运行

<bound method Test.get_name of <__main__.Test object at 0x000000A6C234DF98>>

年龄是:莉莉

3.使用__dict__获取属性

# -*- encoding=utf-8 -*-
class Test:
  def __init__(self):
    self.name = '莉莉'
    self.age = 18
if __name__ == '__main__':
  test = Test()
  name = test.__dict__['name']
  print(name)

运行

莉莉

ps: 如果使用getattr()遇到类属性和方法名是相同时,默认取属性

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python EOL while scanning string literal问题解决方法
Sep 18 Python
Python封装shell命令实例分析
May 05 Python
详解Python如何获取列表(List)的中位数
Aug 12 Python
Python实现Linux的find命令实例分享
Jun 04 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
django表单实现下拉框的示例讲解
May 29 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
如何在django中添加日志功能
Feb 06 Python
python根据字典的键来删除元素的方法
Aug 16 Python
Django mysqlclient安装和使用详解
Sep 17 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
Python OpenCV实现图形检测示例详解
Apr 08 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 #Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 #Python
详解Django中异步任务之django-celery
Nov 05 #Python
Python Django路径配置实现过程解析
Nov 05 #Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 #Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 #Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
Nov 05 #Python
You might like
php多文件上传下载示例分享
2014/02/20 PHP
提高php编程效率技巧
2015/08/13 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
我就是这样学习Python中的列表
2019/06/02 Python
pandas分区间,算频率的实例
2019/07/04 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
详解Python 循环嵌套
2020/07/09 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
安全生产管理合理化建议书
2014/03/12 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
应聘教师自荐信
2015/03/26 职场文书
合理化建议书范文
2015/09/14 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书