关键词:
反射~~~
反射 使用字符串数据类型的变量名来获取这个变量的值
反射类中的变量: 静态属性 类方法 静态方法
class Foo: school = ‘qinghua‘ #静态属性 country = ‘China‘ language = ‘English‘ @classmethod #类方法 def class_method(cls): print(cls.school) @staticmethod #静态方法 def static_method(): print(‘666666666‘) def wahaha(self): print(‘wahaha‘) A = Foo() A.wahaha() Foo.wahaha(1) A.class_method() Foo.class_method() Foo.wahaha() Foo.static_method() Foo.class_method() while 1: inpu = input(‘>>>‘) # 直接类名+inpu的 输入一个 打印一个 print(getattr(Foo,inpu)) ##if inpu == ‘school‘:print(Foo.school) #如果输入的是school 就打印old_boy print(getattr(Foo, ‘school‘)) #反射 类名 + 字符串"静态属性名" Foo.class_method() getattr(Foo, ‘class_method‘)() Foo.static_method() getattr(Foo,‘static_method‘)() print(getattr(Foo, ‘wahaha‘)(1)) #不推荐用类名去反射一个方法名 print(hasattr(Foo, ‘wahaha‘))
反射对象中的变量 对象属性 普通方法
class Foo: def __init__(self,name,age): self.name = name self.age = age def eat(self): print(‘%s is eat‘ % self.name) p1 = Foo(‘alexsb‘,30) print(getattr(p1, ‘name‘)) print(getattr(p1, ‘age‘)) getattr(p1,‘eat‘)()
alexsb
30
alexsb is eat
普通的给文件名 变更 和getattr方法
import os os.rename(‘English‘,‘English777‘) getattr(os,‘rename‘)(‘English777‘,‘china‘)
本文件反射
import sys
getattr(sys.modules[name],‘所有定义在这个文件中的名字‘)
setattr 给命名空间的某一个名字设置一个值
delattr 删除某一个命名空间中变量对应的值
内置方法
不用特别去调用这个方法就可以触发这个方法的执行
class Foo: def __str__(self): return ‘abcd‘ def __repr__(self): return ‘dcba‘ obj = Foo()
__str__ :
print(obj) 打印触发
‘%s’ % obj 格式化输出触发
str() 强转触发
__repr__:
‘%r‘ % obj
repr(obj)
反射以及内置方法(代码片段)
反射反射是使用字符串数据类型的变量名来获取这个变量的值a=1b=2name=‘wang’使用场景: input:用户输入的如果是a,就打印1,如果是b,就打印2,如果是name,就打印‘wang’ 文件:从文件中读出的字符串,转换成变量的... 查看详情
面向对象-反射-其他内置方法(代码片段)
1.反射1.1反射含义通过字符串的形式操作对象的相关属性。方法有hasattr,getattr,delattr#!/usr/bin/envpython#-*-coding:utf-8-*-#Author:vitaclassPeople:country=‘China‘def__init__(self,name,age):self.name=nameself.age=agedeftalk(self): 查看详情
反射和类内置方法(代码片段)
#classTeacher:#dic=‘查看学生信息‘:‘show_student‘,‘查看老师‘:‘show_teacher‘##defshow_student(self):#print(‘showstudent‘)##defshow_teacher(self):#print(‘showteacher‘)##@classmethod#deffunc(cls):#print(‘func‘)## 查看详情
面向对象进阶:反射以及内置方法(代码片段)
一、反射反射:使用字符串数据类型的变量名来获取这个变量的值 input:用户输入的如果是a,那么打印1。如果输入的是b那么就打印2.如果输入name,那么打印alex 文件:从文件中读出的字符串,想转换成变量的名字 网... 查看详情
绑定,反射,内置函数(代码片段)
#绑定方法:绑定给谁就应该谁来调用,谁来调用就会把谁当做第一个参数自动传入importsetting#配置文件为settingclassmysql:def__init__(self,host,port):#绑定到对象self.host=hostself.port=port@classmethod#绑定到类deffrom_conf(cls):returncls(setting.HOST,settin 查看详情
09-06反射内置方法(代码片段)
一反射在Python中,反射指的是通过字符串来操作对象的属性,涉及到四个内置函数的使用(Python中一切皆对象,类和对象都可以用下述四个方法)classTeacher:def__init__(self,full_name):self.full_name=full_namet=Teacher(‘EgonLin‘)#hasattr(object,‘... 查看详情
09-06反射内置方法(代码片段)
一反射在Python中,反射指的是通过字符串来操作对象的属性,涉及到四个内置函数的使用(Python中一切皆对象,类和对象都可以用下述四个方法)classTeacher:def__init__(self,full_name):self.full_name=full_namet=Teacher(‘EgonLin‘)#hasattr(object,‘... 查看详情
绑定与非绑定方法及反射,isinstance和issubclass内置函数(代码片段)
...staticmethod)isinstance和issubclass内置函数1.isinstance2.issubclass反射反射定义4个可以实现反省的函数(内置函数)反射使用场景绑定方法与非绑定方法1.绑定方法?绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数... 查看详情
27isinstance与issubclass反射内置方法(代码片段)
...,Bar))#输出一个Trueobj=Foo()print(isinstance(obj,Foo))#输出一个True反射反射:通过字符串来反射/映射到对象/类的属性上classPeople:def__init__(self,name,age):self.name=nameself.age=agedefrun(self):print(‘%sisrunning‘%self.name)obj=People(‘egon‘,18)print(hasattr(obj,... 查看详情
第十八天-类型判断函数和方法判断反射(代码片段)
#isinstancetypeissubclass内置函数:#1.issubclass()这个内置函数可判断xxx类是否是yyy类型的子类#issubclass(子类,父类)1classBase:2pass34classFoo(Base):5pass67classBar(Foo):8pass910print(issubclass(Bar,Foo))#True11print(issubc 查看详情
注解和反射(代码片段)
1、注解1、内置注解@Override表示重写了父类的方法,有此注解的方法必须是重写了其父类的方法。@Deprecated表示该方法不推荐被使用或者有更好的方法代替,在其他地方使用该方法时会被划掉。@SuppressWarnings("all")表示不检测警告... 查看详情
2018.8.1java中的反射和同步详解(代码片段)
为何要使用同步?java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调... 查看详情
java基础:注解与反射的使用方法与场景(代码片段)
注解与反射的使用方法与场景注解注解定义使用场景内置注解元注解自定义注解反射类加载器加载配置文件反射获取Class反射获取Constructor反射获取Method反射获取Field通过反射获取注解信息内省Introspector获取Bean类信息获取bean类的g... 查看详情
几个内置方法(代码片段)
---恢复内容开始---封装在继承中的情况反射装饰器‘‘‘子类不能继承父类的私有方法‘‘‘‘‘‘classSon(object):A=123__AB=234#print(__AB)#只能在内部查看,内部会自动翻译成‘_Son__AB‘:234,也就是_类名__AB#print(Son.__AB)#报错私有属性不... 查看详情
注解与反射(代码片段)
一、什么是注解英文:annotation注解与注释:注解与注释都是"注",但是注释是给人看的,而注解除了可以给人看,还可以给机器看的,被机器(编译器)读取重要性:几乎是所有java框架的底层二、内置注解:1.@Override:表示一个方法打算... 查看详情
类的相关内置函数及反射(代码片段)
类变量的内存位置相关练习1.1classStarkConfig(object):list_display=[]defget_list_display(self):self.list_display.insert(0,33)returnself.list_displayclassRoleConfig(StarkConfig):list_display=[11,22]s1=StarkConfig()r 查看详情
day17-注解与反射(代码片段)
Java的注解和反射注解与反射注解可被其他程序(如:编译器)读取,可以对程序做出解释以@注释名在代码中存在内置注解@Override必须重写父类存在的方法,否则报错@Deprecated表示不鼓励使用该类或者方法或者属性@SuppressWarnings(... 查看详情
#java反射的使用(代码片段)
Java反射的使用文章目录Java反射的使用概念反射机制功能缺点Java反射相关API类Class`<T>`常见方法注解的使用内置注解作用在代码的注解元注解其它注解自定义注解的使用ClassUtils使用反射代码示例概念Java的反射(refle... 查看详情