初学Python-反射 装饰器 面向对象编程 异常处理 断言
1 反射
以字符串的形式导入模块
以字符串的形式执行模块
#!usr/bin/env python
#coding:utf-8
#反射
##网页链接 ,规范xxx/xxx
#account/login
data=raw_input('请输入地址:')
array=data.split('/')
#account[0]=account
userspance=__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.py
def 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=Func1
def Func1():print 'func1' # 9
@outer #2其实是传参数 fun=Func1
def Func2():print 'func2' # 9
@outer #2其实是传参数 fun=Func1
def 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=Func1
def 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=Func1
def Func1(arg):print 'func1' ,arg # 9return 'return''''此处省略N个函数
''' response=Func1('ffdfvdv') #5
print 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.Capital
print 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.Thailand
JP.Thailand=False
print JP.Thailand
class test1:#可读可写(经典类)不常用def __init__(self):self.__pravite='1111'########一定是双_@propertydef show(self):return self.__pravite
t1=test1()
print t1.show
t1.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=value
t2=test2()
print t2.show#########不能加括号
t2.show='22222222222222222222'
print t2.show
转载于:https://www.cnblogs.com/Eilleen/p/6754062.html
初学Python-反射 装饰器 面向对象编程 异常处理 断言相关推荐
- SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...
- python装饰器函数执行后日志_Python装饰器记录日志、异常处理、函数添加,python,处理函数,功能...
为什么需要使用装饰器? 举一个简单的例子: 当你需要记录一个函数整个处理过程的时间,你会怎么做?最简单直观的方法,当然是在函数开始跟结束的地方记录时间.代码如下: import time def ac ...
- python装饰器函数-Python精进-装饰器与函数对象
本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...
- python中装饰器修复技术_12步轻松搞定Python装饰器
作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数相关语 ...
- python 找到装饰器_[译] 12步轻松搞定python装饰器
呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数 ...
- 浅谈Django的中间件与Python的装饰器
浅谈Django的中间件 与Python的装饰器 一.原理 1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该 ...
- Python的装饰器
详解Python的装饰器 本文源码 https://github.com/tobyqin/python_decorator Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都 ...
- python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景
装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...
- python装饰器函数-Python函数装饰器常见使用方法实例详解
本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...
最新文章
- oracle模块损坏,Oracle中模拟及修复数据块损坏
- POJ1063 Flip and Shift
- jboss7.0.2_JBoss AS 7.0.2“ Arc”发布–使用绑定选项
- hdu1257 最少拦截系统【想了好久】
- 本田与索尼宣布将成立合资企业 计划2025年开始销售电动汽车
- ios沙盒机制与文件操作
- 2017全球超算峰会召开 联想以智能超算赋能AI时代
- 玻森新闻自动摘要算法介绍
- java 标准_Java标准注解
- HackerRank SQL练习题答案大全
- 12v电量显示制作方法_12V电池电量指示电路
- 2020淘宝双十一快速刷金币工具
- 谷歌中国新管理团队集体亮相
- sql统计表个数以及表中字段个数
- Linux 设备模型基本概念 (一)
- python爬虫抢演唱会_Python爬虫告诉你:为什么杨超越不会唱不会跳也能躺赢出道!...
- 在树莓派中安装MCSM面板
- 操作系统:进程同步演示
- 百度震撼推出开发平台及分析
- hihoCoder 1430 A Boring Problem(数论)