python类中成员的调用

python类中的方法到底到底是方法还是函数取绝于调用者,

当类名调用这个方法时他是一个函数

class Foo(object):def f1(self):print("hello beijing")def f2(self):print("hello china")def f3(self):print("hello world")
obj1=Foo()
Foo.f1(obj1)                    #当以类名调用时,他是一个函数,但是
print(Foo.f1(obj1))           #需要自己传值
     obj2=Foo()
obj2.f2()                          #当以实例调用时他是一个方法,这个用的
print(obj2.f2())                 #不用多解释 

关于这个知识点最主要的应用在反射中体现的比较重要

如下

class Foo(object):def f1(self):print("hello beijing")def f2(self):print("hello china")def f3(self):print("hello world")obj2=Foo()
func_or_val = getattr(Foo,"f1")  #这个相当于执行了Foo.f1,上面讲过,这 个要手动传参的
print(func_or_val)
print(func_or_val(obj2))
obj2=Foo()func_or_val = getattr(obj2,"f1")  #这个相当于执行了obj2.f1 ,当他是一个方法的时候不需要传参print(func_or_val)print(func_or_val())

类中成员的调用和反射的最终结合

class Handler:f0 = 9def f1(self):print('F1--001')def f2(self):print('F2--002')def f3(self):print('F3--003')def f4(self):print('F4--004')def f5(self):print('F5--005')
while True:print("""系统支持的函数有:1. f12. f23. f34. f45. f5""")val = input("请输入要执行的函数:")func_or_val = getattr(Handler, val)print(func_or_val)           #这个相当于Handler.f1,在这里f1是个函数,前面说过,后面是要自己传参数的obj=Handler()print(func_or_val(obj))         #传的参数是实例print(func_or_val(Handler()))   #这两个写法是一样的#这么做最厉害的是可以动态的调用类中的方法了,想调用哪个都可以

转载于:https://www.cnblogs.com/zhuhaofeng/p/9561450.html

python类中成员的的调用相关推荐

  1. Java笔记-通过放射获取类中成员名及调用get方法及map构造JSON数据

    目录 通过反射获取类中成员名 通过反射调用get方法 map生成JSON数据 通过反射获取类中成员名 /*** 获取类中的所有成员名* @param currentClass* @return* @t ...

  2. python类中包含一个特殊的变量、它可以访问类的成员_Python 类的特殊成员介绍...

    类的成员有两种形式 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法,私有成员命名时,前两个字符是下划线. class Foo: def __init__(self, name, age ...

  3. python类中私有成员和方法的访问

    1.私有成员的访问 python类中的私有成员和方法内的私有成员(在python中以__开头的变量),在类外只能通过类中定义的方法来进行访问,或者用一种特殊的方式a._A__value(a是对象,A是 ...

  4. python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解

    我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...

  5. Python 同一个类中不同函数相互调用

    本文采取:Python的类中函数方法相互调用的两种方式_狗哥的博客-CSDN博客 __metaclass__=type class Stu:name=Noneage=Noneschool=" ...

  6. python类中包含一个特殊的变量、它可以访问类的成员_区域联防的运用中遵循并贯彻以球为主的防守原则,做到球人区三者兼顾。( )...

    刘墉书法的特点是用墨厚重,体丰骨劲,浑厚敦实,别具面目.A:对B:错 Python类中包含一个特殊的变量(),它表示当前对象自身,可以访问类的成员.A:meB:selfC:thisD:与类同名 在过火 ...

  7. python类中包含一个特殊的变量、它可以访问类的成员_Python类中包含一个特殊的变量( ),它表示当前对象自身,可以访问类的成员....

    包含票务系统的业务管理主要内容包括()A:运营监督B:规则管理C:信息管理D:财务管理E:模式管理 特殊表嘌呤核苷酸补救合成途径的主要器官是().A:脑组织B:小肠C:胸腺D:肝脏E:肾脏 示当身嘌呤 ...

  8. 【Python——类】 同一个类中一个函数里调用另一个函数的方法

    [Python-类] 同一个类中一个函数里调用另一个函数的方法 class Solution:def a(self):self.b() # 注意这种写法:self.类名def b(self):prin ...

  9. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

最新文章

  1. 联想android刷机教程视频,联想s939刷机教程(刷官方系统)
  2. Python中的高阶函数reduce
  3. Java千百问_05面向对象(012)_泛型是什么
  4. war包怎么解压_渣渣辉表情包下载-渣渣辉抖音表情包动态图下载
  5. 马上就5g时代了,5g时代有什么风口吗?
  6. textView 父视图alpha设置不影响子视图
  7. 控制input输入框光标的位置
  8. 单片机——电子密码锁设计报告
  9. ue修改倚天服务器时间,正途私服UE修改一些配置脚本
  10. Windows自建虚拟机搭建kms激活服务器激活正版系统教程
  11. 激光雷达定位-论文心得
  12. css 设置手机浏览器背景图片填充整个页面的小问题级解决方法
  13. 尚硅谷-TypeScript
  14. echarts实现全国及各省市地图(内附地图json文件)
  15. 政务内网不能上网的解决办法
  16. 将fla文件的影片剪辑按钮等一些类文件和外部的as文件整合到swc中
  17. 物联网毕业设计 - 基于STM32的轮足两用可变形环境感知探测机器人
  18. 易语言传文本到c 崩溃,win7系统易语言打开支持库配置就崩溃的解决方法
  19. 判断浏览器类型及是否能使用ES6部分特性
  20. 元祖python_python元祖和列表

热门文章

  1. python与c语言在语法上的区别-论c++/java/c 与python的语法上的区别
  2. python基础教学视频-Python基础教程(附教学视频)
  3. python语言属于-Python语言属于( )。_学小易找答案
  4. python对文件的读操作有哪些方法-Python之文件操作:文件的读写
  5. python 数据分析学什么-如何学习Python数据分析呢?老男孩Python培训
  6. spring中bean的实例化
  7. 行为模式之Visitor模式
  8. 结构型模式之Proxy模式
  9. 牛客网 PAT乙级(Basic Level)练习题 1023 考新郎
  10. Python入门学习笔记03(装饰器)