java实列方法和静态方法_静态方法,类方法和实例方法

1.反射类的属性和方法 2.反射对象的属性和方法 3.反射模块中的属性和方法

反射方法

描述

hasattr(obj,name)

判断是否包含名称为name的属性,返回的是布尔值

getattr(obj,name)

获取名称为name的属性的具体数据

setattr(obj,name) 较少

给名称为name的属性设置value值

delattr(obj,name) 较少

删除名称为name的属性

 getattr()

class Teacher():

dic = {"学生信息":"show_student","老师信息":"show_teacher"}

def init(self,name,age):

self.name = name

self.age = age

@classmethod

def func(cls):

print("--func--")

def show_student(self):

print("--show student--")

def show_teacher(self):

print("--show teacher")

反射类中的属性和方法

获取Teacher类中的dic

print(getattr(Teacher,"dic"))

获取Teacher类中的func

ret = getattr(Teacher,"func")

ret()

反射对象中的属性和方法

teacher = Teacher("陈老师",21)

获取name属性

print(getattr(teacher,"name")) #teacher.name

获取所有的属性

print(getattr(teacher,"dict"))

ret = getattr(teacher,"show_student")

print(ret)

ret()

反射模块中的属性和方法

import test1

反射模块中的属性

print(getattr(test1,"name"))

反射模块中 的方法

func1 = getattr(test1,"func1")

func1()

func2 = getattr(test1,"func2")

func2(666)

反射模块中的类

Person = getattr(test1,"Person")

per = Person()

per.study()

 # hasattr() 检测对象是否有某个成员,返回布尔

class Teacher():

dic = {"学生信息":"show_student","老师信息":"show_teacher"}

def init(self,name,age):

self.name = name

self.age = age

@classmethod

def func(cls):

print("--func--")

def show_student(self):

print("--show student--")

def show_teacher(self):

print("--show teacher")

判断有没有dic

b = hasattr(Teacher,"dic")

if b:

ret = getattr(Teacher,"dic")

print(ret)

else:

print("没有此属性")

练习:根据用户输入的key来调用对应的方法

如:输入“学生信息”,调用 show_student

key = input("请输入学生信息或老师信息:") #学生信息

"--show student--"

 #setattr 给对象或者类添加属性

class Person:

pass

给Person添加静态属性age

setattr(Person,"age",18)

print(Person.age)

delattr 删除对象或者类中的成员

per = Person()

setattr(per,"name","黄志")

print(per.name)

delattr(Person,"age")

print(Person.age)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值