200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 初学Python-反射 装饰器 面向对象编程 异常处理 断言

初学Python-反射 装饰器 面向对象编程 异常处理 断言

时间:2023-01-26 19:07:36

相关推荐

初学Python-反射 装饰器 面向对象编程 异常处理 断言

1 反射

以字符串的形式导入模块

以字符串的形式执行模块

#!usr/bin/env python#coding:utf-8#反射##网页链接 ,规范xxx/xxx#account/logindata=raw_input('请输入地址:')array=data.split('/')#account[0]=accountuserspance=__import__('backend.'+array[0])#读取文件夹module=getattr(userspance,array[0])#读取文件夹下的模块func=getattr(module,array[1])#读取文件夹下的模块的函数func()'''accout.pydef login():print('login')def logout():print('logout')admin.pydef index():print('欢迎登陆后台管理')'''

2 装饰器

#!usr/bin/env python#coding:utf-8#װ装饰器#不带参数 不带返回值def outer(fun): #1 def wrapper():# 3 6'''在所有函数前加东西7'''fun() # 8'''在所有函数前后东西10'''return wrapper #4 此时Func1()里面是 wrapper函数@outer #2其实是传参数 fun=Func1def Func1():print 'func1' # 9@outer #2其实是传参数 fun=Func1def Func2():print 'func2' # 9@outer #2其实是传参数 fun=Func1def Func3():print 'func3' # 9 '''此处省略N个函数''' Func1()Func2()Func3() #5'''Func1=def wrapper():# 3 6 可以加参数#在所有函数前加东西7fun() # 8 # 在所有函数前后东西10'''#带参数def outer(fun): #1 def wrapper(arg):# 3 6'''在所有函数前加东西7'''fun(arg) # 8'''在所有函数前后东西10'''return wrapper #4 此时Func1()里面是 wrapper函数@outer #2其实是传参数 fun=Func1def Func1(arg):print 'func1' ,arg # 9'''此处省略N个函数''' Func1('ffdfvdv') #5'''Func1=def wrapper(arg):# 3 6 可以加参数#在所有函数前加东西7fun(arg) # 8 # 在所有函数前后东西10'''#带参数带返回值def outer(fun): #1 def wrapper(arg):# 3 6'''在所有函数前加东西7'''result=fun(arg) # 8'''在所有函数前后东西10'''return resultreturn wrapper #4 此时Func1()里面是 wrapper函数@outer #2其实是传参数 fun=Func1def Func1(arg):print 'func1' ,arg # 9return 'return''''此处省略N个函数''' response=Func1('ffdfvdv') #5print response'''Func1=def wrapper(arg):# 3 6 可以加参数#在所有函数前加东西7fun(arg) # 8 # 在所有函数前后东西10return result'''

3 面向对象

#面向对象#静态字段属于类,动态字段属于对象class Province:##字段memo='中国的23个省之一'##静态字段 def __init__(self,name,capital,leader):#类的方法self.Name=name#动态字段self.Capital=capitalself.Leader=leader#方法 #动态方法(对象访问)创建对象def sports_meet(self):print self.Name+'正在开运动会' def eath_lunch(self):print self.Leader+'正在吃午饭'#静态方法(类访问) (可以不用创建对象)@staticmethoddef foo():print'每个省都在反腐' #特性(加装饰器)@propertydef Bar(self):print self.Name#return 'something'sd=Province('山东','济南','王胜辉')hb=Province('河北','石家庄','李亚')##访问字段#################类(静态字段)对象(动态字段)print Province.memo#print Province.Capital#类不能访问动态字段print hb.Capitalprint hb.memo#对象可以访问静态字段##访问方法################类(静态方法)对象(动态方法)hb.sports_meet()sd.sports_meet()sd.eath_lunch()Province.foo()#()类不能访问动态方法,加上@staticmethod再去掉self就是静态方法##访问特性###############与访问字段方法一样hb.Bar

#!usr/bin/env python#coding:utf-8#面向对象#静态字段属于类,动态字段属于对象class Province:##字段memo='中国的23个省之一'##静态字段 def __init__(self,name,capital,leader,flag):#类的方法self.Name=name#动态字段self.Capital=capitalself.Leader=leader#####私有字段 外部访问不到(得二次访问) self.__Thailand=flag#方法 #动态方法(对象访问)def sports_meet(self):print self.Name+'正在开运动会' def eath_lunch(self):print self.Leader+'正在吃午饭'###私有字段写入def show(self): print self.__Thailand ####私有方法def __sha (self):print'输出是'def show2(self):self.__sha() #静态方法(类访问) @staticmethoddef foo():print'每个省都在反腐' #特性(加装饰器)@propertydef Bar(self):print self.Name#return 'something'#读私有字段@propertydef Thailand(self):print self.__Thailand#sd=Province('山东','济南','王胜辉',gy)#hb=Province('河北','石家庄','李亚',vhvg)JP=Province('日本','fvsvsv','fcvz',True)##访问字段#################类(静态字段)对象(动态字段)#print Province.memo###print Province.Capital#类不能访问动态字段#print hb.Capital#print hb.memo#对象可以访问静态字段#print JP.__Thailand#私有字段 外部不能访问##访问方法################类(静态方法)对象(动态方法)#hb.sports_meet()#sd.sports_meet()#sd.eath_lunch()JP.show()#JP.sha()#外部不能访问私有方法JP.show2()#Province.foo()#类不能访问动态方法,加上@staticmethod再去掉self就是静态方法##访问特性###############与访问字段方法一样#hb.BarJP.ThailandJP.Thailand=Falseprint JP.Thailand

class test1:#可读可写(经典类)不常用def __init__(self):self.__pravite='1111'########一定是双_@propertydef show(self):return self.__pravitet1=test1()print t1.showt1.show='11111111111111111'print t1.showclass test2(object):##读写分开(新式类)常用def __init__(self):self.__pravite='2222'@propertydef show(self):return self.__pravite @show.setterdef show(self,value):self.__pravite=valuet2=test2()print t2.show#########不能加括号t2.show='22222222222222222222'print t2.show

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