CMDB 中的面向对象知识

反射:getattr(obj,'xxx')
	导入模块:
		import re
		'django.middleware.clickjacking.XFrameOptionsMiddleware'
		m = importlib.import_module('django.middleware.clickjacking')
		cls = getattr(m,'XFrameOptionsMiddleware')
		cls()
		
	面向对象:
		
		class Foo:
			def __init__(self,xx):
				pass
			
			@classmethod
			def instance(cls):
				return cls()
				
			def process(self):
				pass
				
		if hasattr(Foo,'instance'):
			obj = Foo.instance()
		else:
			obj = Foo()
		obj.process()
		
		
		
		class A:
			def f1(self):
				self.f2()
				
			def f2(self):
				print('A.f2')
				
		class B(A):
			def f2(self):
				print("B.f2")
				
		obj = B()
		obj.f1()
		

posted @ 2017-10-11 11:41  hzxPeter  阅读(77)  评论(0)    收藏  举报