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基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
python time模块用法实例详解
Sep 11 Python
Python下使用Psyco模块优化运行速度
Apr 05 Python
Python随机数random模块使用指南
Sep 09 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
python 计算一个字符串中所有数字的和实例
Jun 11 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
python 下载文件的几种方式分享
Apr 07 Python
详解pytorch创建tensor函数
Mar 22 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系列学习之日期函数使用介绍
2012/08/18 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
php利用header函数下载各种文件
2016/08/24 PHP
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
详解Document.Cookie
2015/12/25 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
python optparse模块使用实例
2015/04/09 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
简单了解Python write writelines区别
2020/02/27 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
大学生实习期自我评价范文
2013/10/03 职场文书
会计学自我鉴定
2014/02/06 职场文书
授权委托书范本
2014/04/03 职场文书
市场营销毕业求职信
2014/08/07 职场文书
嘉宾邀请函
2015/01/31 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
MySQL如何使备份得数据保持一致
2022/05/02 MySQL