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的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
Python实现的HMacMD5加密算法示例
Apr 03 Python
python os用法总结
Jun 08 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
Python列表与元组的异同详解
Jul 02 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
Python中生成ndarray实例讲解
Feb 22 Python
Python类方法总结讲解
Jul 26 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
56.com视频采集接口程序(PHP)
2007/09/22 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
php加密解密实用类分享
2014/01/07 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
js 文件引入实现代码
2010/04/23 Javascript
jQuery 表格工具集
2010/04/25 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
Python中的True,False条件判断实例分析
2015/01/12 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
Python实现Event回调机制的方法
2019/02/13 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Python模块的制作方法实例分析
2019/12/21 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
python实例化对象的具体方法
2020/06/17 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
Oracle性能调优原则
2012/05/03 面试题
会计主管岗位职责范文
2013/11/08 职场文书
项目计划书范文
2014/01/09 职场文书
《争吵》教学反思
2014/02/15 职场文书
总裁助理岗位职责
2014/02/17 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
圣诞节开幕词
2015/01/29 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书