200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java实列方法和静态方法_静态方法 类方法和实例方法

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

时间:2022-09-28 05:31:58

相关推荐

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)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。