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连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
numpy中的meshgrid函数的使用
Jul 31 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
Python绘制动态水球图过程详解
Jun 03 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 Python
python切片作为占位符使用实例讲解
Feb 17 Python
Python实现简繁体转换
Jun 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
js模拟微博发布消息
2017/02/23 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python实现GIF图倒放
2020/07/16 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
企业优秀员工事迹材料
2014/05/28 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
员工趣味活动方案
2014/08/27 职场文书
高中学校对照检查材料
2014/08/31 职场文书
工作总结与自我评价
2014/09/18 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
SQL Server 中的事务介绍
2022/05/20 SQL Server