day 017面向对象-反射】的更多相关文章

主要内容: isinstance, type, issubclass( 内置函数) 区分函数和方法 反射 一    ( isinstance, type, issubclass) isinstance()  :可以帮我们判断xx类是否是xx类的子类. class Basse: pass class Foo: passlass Bar(Foo): pass print(issubclass(Bar,Foo)) #true print(issubclass(Foo,Bar)) #false prin…
Python之面向对象反射 isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 class Foo(object): 2 pass 3 4 obj = Foo() 5 6 isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo) 反射: 1 什么是反射 反射的概念是…
封装 隐藏对象的属性和实现细节,近对外提供公共访问方式 广义:代码保护,面向对象思想 狭义:将属性,方法隐藏起来 class Person: __key = 123456 # 私有的静态属性 def __init__(self,name,passwd): self.name = name self.__passwd = passwd # 私有的属性 def __test(self): # 私有方法 print(self.__dict__) print('私有方法内部调用') ## 只要在类的内部…
1.isinstance ,type, issubclass       isinstance:判断给的对象是否是**类型       type:返回**对象的数据类型       issubclass:判断**类是否**的子类 class Animal: def eat(self): print('动物的世界你不懂') class Cat(Animal): def play(self): print('毛霸王') c = Cat() print(isinstance(c,Cat)) # Tru…
反射 反射主要用在网络编程中, python面向对象的反射:通过字符串的形式操作对象相关的属性.python的一切事物都是对象. 反射就是通过字符串的形式,导入模块:通过字符串的形式,去模块寻找指定函数,并执行.利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动! getattr() 查找getattr(object,name[,default]):使用字符串数据类型获取对象的方法和属性,注意name是字符串,如果存在则返回,不存在则打印出默认值,默认值…
一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问,检测和修改它本省状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. python面向对象中的反射:通过字符串的形式操作对象相关的属性.Pythonn中的一切事物都是对象(都可以使用反射) 反射四种方法 一切皆对象,类本身也是一个对象 hasattr def hasattr(*args, **kwarg…
1.classmethod.staticmethod方法 classmethod类方法默认参数cls,可以直接用类名调用,可以与类属性交互 #student文件内容 宝宝,男 博博,女 海娇,男 海燕,女 海东,男 海峰,男 class Student: f = open('student', encoding='utf-8') def __init__(self): pass def func(self): pass @classmethod #类方法:默认参数cls,可以直接用类名调用,可以…
常用subprocess方法示例 #执行命令,返回命令执行状态 , 0 or 非0>>> retcode = subprocess.call(["ls", "-l"]) #执行命令,如果命令结果为0,就正常返回,否则抛异常>>> subprocess.check_call(["ls", "-l"])0 #接收字符串格式命令,返回元组形式,第1个元素是执行状态,第2个是命令结果 >>…
反射:通过字符串来访问到所对应的值(反射到真实的属性上). eg: class Foo: x=1 def __init__(self,name): self.name=name def f1(self): print('from f1') # print(Foo.x) #Foo.__dict__['x'] f=Foo('egon') # print(f.__dict__) # # #1: # print(f.name) #2: # print(f.__dict__['name']) #hasat…
一. 反射 1. isinstance()和issubclass() isinstance( 对象名, 类名) : 判断对象所属关系,包括父类  (注:type(对象名) is 类名 : 判断对象所属关系,只包括当前的类.) issubclass(类名, 类名) : 判断类与类之间的继承关系 class A: pass class B(A): pass b = B() print(isinstance(b, B)) # True 判断对象b是否属于B类 print(isinstance(b, A…