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-反射 装饰器 面向对象编程 异常处理 断言相关推荐

  1. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  2. python装饰器函数执行后日志_Python装饰器记录日志、异常处理、函数添加,python,处理函数,功能...

    为什么需要使用装饰器? 举一个简单的例子: 当你需要记录一个函数整个处理过程的时间,你会怎么做?最简单直观的方法,当然是在函数开始跟结束的地方记录时间.代码如下: import time def ac ...

  3. python装饰器函数-Python精进-装饰器与函数对象

    本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...

  4. python中装饰器修复技术_12步轻松搞定Python装饰器

    作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数相关语 ...

  5. python 找到装饰器_[译] 12步轻松搞定python装饰器

    呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数 ...

  6. 浅谈Django的中间件与Python的装饰器

    浅谈Django的中间件 与Python的装饰器 一.原理 1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该 ...

  7. Python的装饰器

    详解Python的装饰器 本文源码 https://github.com/tobyqin/python_decorator Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都 ...

  8. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  9. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

最新文章

  1. oracle模块损坏,Oracle中模拟及修复数据块损坏
  2. POJ1063 Flip and Shift
  3. jboss7.0.2_JBoss AS 7.0.2“ Arc”发布–使用绑定选项
  4. hdu1257 最少拦截系统【想了好久】
  5. 本田与索尼宣布将成立合资企业 计划2025年开始销售电动汽车
  6. ios沙盒机制与文件操作
  7. 2017全球超算峰会召开 联想以智能超算赋能AI时代
  8. 玻森新闻自动摘要算法介绍
  9. java 标准_Java标准注解
  10. HackerRank SQL练习题答案大全
  11. 12v电量显示制作方法_12V电池电量指示电路
  12. 2020淘宝双十一快速刷金币工具
  13. 谷歌中国新管理团队集体亮相
  14. sql统计表个数以及表中字段个数
  15. Linux 设备模型基本概念 (一)
  16. python爬虫抢演唱会_Python爬虫告诉你:为什么杨超越不会唱不会跳也能躺赢出道!...
  17. 在树莓派中安装MCSM面板
  18. 操作系统:进程同步演示
  19. 百度震撼推出开发平台及分析
  20. hihoCoder 1430 A Boring Problem(数论)

热门文章

  1. 【算法】两道算法题根据提供字母解决解码方法和城市的天际线天际线问题
  2. 从大数据应用案例中理解大数据的应用价值
  3. Android简单的布局优化
  4. C#基于虹软SDK的人脸识别签到系统
  5. mysql 支持中文的字符集_MySQL 中文显示乱码
  6. shell脚本——正则表达式(包含grep详细介绍及应用)
  7. 群晖nas存储系统原理_今夜来谈群晖----缓存、NAS和SSD那些事
  8. 我们仍处于本轮牛市之中
  9. html语义化标签和无语义化标签
  10. android部分代码片段(例:判断设备为手机,获取mac地址,软键盘,唤醒屏幕等)