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写的服务监控程序实例
Jan 31 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
Python中使用copy模块实现列表(list)拷贝
Apr 14 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
python3实现跳一跳点击跳跃
Jan 08 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
python中for循环变量作用域及用法详解
Nov 05 Python
python with (as)语句实例详解
Feb 04 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python使用openpyxl复制整张sheet
Mar 24 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
一个分页的论坛
2006/10/09 PHP
解析dedeCMS验证码的实现代码
2013/06/07 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
ES6中异步对象Promise用法详解
2019/07/31 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
给Python初学者的一些编程技巧
2015/04/03 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
python多任务及返回值的处理方法
2019/01/22 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
解决Python对齐文本字符串问题
2019/08/28 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
最受欢迎的自我评价
2013/12/22 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
大二学年个人总结
2015/03/03 职场文书
python如何读取.mtx文件
2021/04/22 Python
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB