网络优化的内容有哪些,百度seo网站,企业管理平台系统,网页托管# 面向对象的进阶# 其他常用模块# 作业 考试题# 网络编程 2天# ftp作业# class A:pass# class B(A):pass# a A()# print(isinstance(a,A))返回true#xff0c;判断a是不是A的对象# print(issubclass(B,A))返回true#xff0c;判断B是不是A的子类# print(issubclass(A,B))》…# 面向对象的进阶# 其他常用模块# 作业 考试题# 网络编程 2天# ftp作业# class A:pass# class B(A):pass# a A()# print(isinstance(a,A))返回true判断a是不是A的对象# print(issubclass(B,A))返回true判断B是不是A的子类# print(issubclass(A,B))》》》返回Flase# 反射 是用字符串类型的名字 去操作 变量# name 1# eval(print(name)) # 安全隐患# 反射 就没有安全问题# 反射 是用字符串类型的名字 去操作 变量# 反射对象中的属性和方法 # hasattr getattr setattr delattr# class A:# def func(self):# print(in func)## a A()# a.name alex# a.age 63# # 反射对象的属性 # ret getattr(a,name) # 通过变量名的字符串形式取到的值# print(ret)# print(a.__dict__)# 变量名 input() # func# print(getattr(a,变量名))#如果不用面向对象的反射也可以用if判断input输入内容是否等于‘name’来返回a.name的值# print(a.__dict__[变量名])#不用反射、if判断也可以用__dict__但遇到需要执行func时if和字典就不管用了要用反射拿到方法的内存地址## # 反射对象的方法 # a.func()# ret getattr(a,func)# ret()## class A:# price 20# classmethod# def func(cls):# print(in func)# # 反射类的属性 # # A.price# print(getattr(A,price))## # 反射类的方法 classmethod staticmethod# # A.func()# if hasattr(A,func):#如果存在才执行# getattr(A,func)()#模块模块实际就是一个类my是类名/*一个my的模块文件 day Monday # 周一 def wahaha(): print(wahahaha) class C: pass */ # import my # 反射模块的属性 # print(my.day) # print(getattr(my,day)) # 反射模块的方法 # getattr(my,wahaha)() # 内置模块也能用 # time # asctime # import time # print(getattr(time,time)()) # print(getattr(time,asctime)()) # def qqxing(): # print(qqxing) # year 2018 # import sys # # print(sys.modules[__main__].year)#modules查看所有导入的模块sys.modules[__main__]找到自己的模块 # # 反射自己模块中的变量 # # print(getattr(sys.modules[__main__],year)) # # # 反射自己模块中的函数 # # getattr(sys.modules[__main__],qqxing)() # 变量名 input() # print(getattr(sys.modules[__name__],变量名))#取自己模块名字时不应该用_main_写死要想自己模块为其他模块A导入对象时这段代码还生效尽量使用变量_name_来反射因为此时的_main_不为_main_而是模块A名字 # 要反射的函数有参数怎么办? # print(time.strftime(%Y-%m-%d %H:%M:S)) # print(getattr(time,strftime)(%Y-%m-%d %H:%M:S)) # 一个模块中的类能不能反射得到 # import my # print(getattr(my,C)())#拿到一个类C加实例化 # if hasattr(my,name): # getattr(my,name) hasattr和getattr常搭配使用防止报错 总之什么.什么这种样式都可以用反射来拿到 # 重要程度半颗星 # setattr 设置修改变量 class A: pass a A() setattr(a,name,nezha) #添加到对象的空间 setattr(A,name,alex) #添加到类的空间 print(A.name) print(a.name) # delattr 删除一个变量 delattr(a,name) #这里是删除对象a里的name属性nezha print(a.name) #对象a的name已被删除所以找类A的name》》alex delattr(A,name) #类A的name已被删除所以打印会报错找不到name了 print(a.name)转载于:https://www.cnblogs.com/mys6/p/10666759.html