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定时器使用示例分享
Feb 16 Python
Python重新引入被覆盖的自带function
Jul 16 Python
讲解Python中if语句的嵌套用法
May 14 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
Python画图高斯分布的示例
Jul 10 Python
关于numpy数组轴的使用详解
Dec 05 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
python raise的基本使用
Sep 10 Python
详解Python中list[::-1]的几种用法
Nov 16 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中json_encode()和json_decode()
2014/05/25 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
numpy自动生成数组详解
2017/12/15 Python
python实现随机漫步算法
2018/08/27 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python列表的切片实例讲解
2019/08/20 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
学期研究性学习个人的自我评价
2014/01/09 职场文书
建议书标准格式
2014/03/12 职场文书
三爱活动实施方案
2014/03/19 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis