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列表与元组详解实例
Nov 01 Python
python中的__slots__使用示例
Feb 26 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
Python实现的用户登录系统功能示例
Feb 05 Python
python实现聚类算法原理
Feb 12 Python
解决python报错MemoryError的问题
Jun 26 Python
记录Python脚本的运行日志的方法
Jun 05 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python中实现输入一个整数的案例
May 03 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python实现查询剪贴板自动匹配信息的思路详解
Jul 09 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
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
php自动加载方式集合
2016/04/04 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
js获取div高度的代码
2008/08/09 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
python读取视频流提取视频帧的两种方法
2020/10/22 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
python time()的实例用法
2020/11/03 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
出差报告怎么写
2014/11/06 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
考试后的感想
2015/08/07 职场文书
少先大队干部竞选稿
2015/11/20 职场文书