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获取脚本所在目录的正确方法
Apr 15 Python
python求crc32值的方法
Oct 05 Python
python使用urlparse分析网址中域名的方法
Apr 15 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
python实现Adapter模式实例代码
Feb 09 Python
wxPython的安装与使用教程
Aug 31 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
实现Python与STM32通信方式
Dec 18 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
python 实现Harris角点检测算法
Dec 11 Python
Python 使用dict实现switch的操作
Apr 07 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-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
php和html的区别点详细总结
2019/09/24 PHP
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
python生成随机密码或随机字符串的方法
2015/07/03 Python
Django中的Signal代码详解
2018/02/05 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
Django中的session用法详解
2020/03/09 Python
Django values()和value_list()的使用
2020/03/31 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
中国梦主题教育活动总结
2014/05/05 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
改革共识倡议书
2014/08/29 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书