码迷,mamicode.com
首页 > 编程语言 > 详细

Python高级

时间:2019-09-14 23:02:50      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:内容   port   get   getattr   __init__   self   @class   课程   ini   

反射方法 getattr、hasattr、setattr、delattr

命名空间.xxx == getattr(命名空间, "xxx")



 1 #
类 - 静态属性、类方法、静态方法
 2 class Student:
 3     ROLE = "STUDENT"
 4 
 5     @classmethod
 6     def check(cls):
 7         print("查看课程")
 8 
 9     @staticmethod
10     def login():
11         print("登录")
12 
13 print(getattr(Student, ROLE))  # 反射查看类属性
14 
15 print(getattr(Student, check))  # 反射查看类方法
16 getattr(Student, check)()
17 
18 getattr(Student, login)()  # 反射查看类静态方法
19 
20 hasattr(Student, login)

对象
 1 # 对象 - 属性、方法
 2 class Student:
 3     def __init__(self, name):
 4         self.name = name
 5 
 6     def eat(self):
 7         print("%s吃饭..." % self.name)
 8 
 9 alex = Student("大帅逼")
10 print(getattr(alex, name))  # 反射查看对象属性
11 getattr(alex, eat)()  # 反射查看对象方法
反射自己模块中的内容
1 # 反射自己模块中的内容,找到自己当前文件所在的命名空间
2 import sys
3 # sys.modules 这个方法,表示是所有在当前这个python程序中导入的模块
4 def func():
5     print("func")
6 sys.modules[__main__].func()
7 getattr(sys.modules[__main__], func)()

 


 

Python高级

标签:内容   port   get   getattr   __init__   self   @class   课程   ini   

原文地址:https://www.cnblogs.com/arley520/p/11520395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!