python关于hasattr和getattr的理解

## 这是test2模块
def f1():print('F1')def f2():print('F2')def f3():print('F3')f4 = 0
#这在其他的py文件写的用来进行导入test2
from types import FunctionType
import test2
if val == 'f1':test2.f1()if val == 'f2':test2.f1()if val == 'f3':test2.f1()if val == 'f4':print(test2.f4)

如果这么写显然是非常冗长的 可以用到getattr() hasattr()

对于这样的练习思想和逻辑: 注意getattr 和 hasattr 的用法, 第一个参数放的一个模块,或者类, 第二个参数放的是字符串(对应的是模块或者类的函数) 还有就是 关于两个类的导入FunctionType MethodType 是讨论是不是方法或者函数的两个模块用isinstance 进行相关的判断

**
“”"

while True:val = input('请输入要写的函数:') #  此时会输入f1 ,f2 f3 之类的if hasattr(test2, val):# 此时要注意 val一定得是字符串  表示如果要是test2有这个val方法的话v = getattr(test2, val)  # 根据val为参数去test2模块中寻找同名的成员if isinstance(v, FunctionType):  # 判断是不是函数 因为f4 不是函数v()else:print(v)else:print('test2中不存在输入的属性')

如果有100多个if elif 的话 写起来会很麻烦,不专业 ,那么getattr 和 hasattr 就用到了,希望我能讲明白

python关于hasattr和getattr的理解相关推荐

  1. python中hasattr()、getattr()、setattr()函数的使用

    在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr().s ...

  2. 【python】hasattr()、getattr()、setattr() 函数使用详解

    一.hasattr(object,name)函数 判断一个对象里面是否有name属性或者name方法,返回bool值,有name属性(方法)返回True,否则返回False class functio ...

  3. Python的hasattr()、getattr()、setattr() 函数用法

    hasattr() hasattr() 函数用来判断某个类实例对象是否包含指定名称的属性或方法. 该函数的语法格式如下: hasattr(obj, name) 其中 obj 指的是某个类的实例对象,n ...

  4. python中setattr用法_python中hasattr()、getattr()、setattr()函数的使用

    引言: 在阅读源码时,有很多简写的形式,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr().setattr()函数的使用也一并学习了 ...

  5. python中attr_python中hasattr()、getattr()、setattr()函数的使用

    引言: 在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr ...

  6. python hasattr()、getattr()、setattr()、delattr()函数

    Python hasattr().getattr().setattr().delattr()函数 hasattr()函数 hasattr()函数用于判断是否包含对应的属性:当然,对于Python的对象 ...

  7. python hasattr函数_Python3 hasattr()、getattr()、setattr()函数简介

    Python3 hasattr().getattr().setattr()函数简介 一.hasattr(object, name) 判断object对象中是否存在name属性,当然对于python的对 ...

  8. Python的hasattr() getattr() setattr() 函数使用方法详解

    Python的hasattr() getattr() setattr() 函数使用方法详解 (一) hasattr(object,name) 函数 判断一个对象里面是否有 name 属性或者 name ...

  9. python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法

    hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. 需要注意的是name要用括号括起来 ...

最新文章

  1. java与SPARK的使用的一个类似文章
  2. 理解 UDDI(统一描述、发现和集成)
  3. Centos下 安装和测试kafka
  4. subsonic mysql_Subsonic 介绍
  5. Android原生开发modules方式导入Unity问题汇总
  6. Mathcad Prime 下载 安装 与 和谐教程
  7. UVALive 7143 Room Assignment(组合数学+DP)(2014 Asia Shanghai Regional Contest)
  8. 高可用MySQL MHA介绍
  9. spring boot 调试 - 热部署
  10. ubuntu 开机自动挂在windows下的分区
  11. 数据结构——>二叉树
  12. Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires
  13. 20200128每日一句
  14. 最新超详细VMware虚拟机下载与安装
  15. SEO网站前端优化整理
  16. matlab矩阵倒数,求解:用MATLAB生成空间距离倒数矩阵后面板分析出现下面的几句警告...
  17. 命令行基础-vim编辑器
  18. 读jquery 权威指南[3]-动画
  19. Ubuntu 下旋转显示器屏幕
  20. python网球比赛模拟主持稿_主持人大赛模拟主持稿

热门文章

  1. GPU处理能力(TFLOPS/TOPS)
  2. sql语句快速清空表
  3. 校园极速卡客户端出现的问题
  4. Android之一分钟完成发表情功能
  5. 2021年全球球星卡市场现状及竞争格局分析,产业链逐渐成型,行业出现头部玩家「图」
  6. Vue-60分钟快速入门篇-下篇
  7. Wdindows WSL(linux子系统)常用命令
  8. Android设置反代理
  9. win7无法关机,无法关闭程序
  10. 【linux工具】Tmux简明教程