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 Requests安装与简单运用
Apr 07 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
TensorFlow变量管理详解
Mar 10 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python Pillow Image Invert
Jan 22 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
Python如何实现邮件功能
May 27 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
pytorch损失反向传播后梯度为none的问题
May 12 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桌面中心(四) 数据显示
2007/03/11 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
Python删除空文件和空文件夹的方法
2015/07/14 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python实现点对点聊天程序
2018/07/28 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python实现最常见加密方式详解
2019/07/13 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
《青海高原一株柳》教学反思
2014/04/25 职场文书
学校募捐倡议书
2014/05/14 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
企业晚会策划方案
2014/05/29 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
大学生年度个人总结
2015/02/15 职场文书
党支部工作总结2015
2015/04/01 职场文书
办公室禁烟通知
2015/04/23 职场文书
求职信如何撰写?
2019/05/22 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery