`

python中修饰符@的使用

 
阅读更多

# -*- coding: utf-8 -*-

#!/usr/bin/env python

 

def spamrun(fn):

    def sayspam(*args):

        print "spam,spam,spam "

        fn(*args)

        return   

    return sayspam

 

@spamrun

def useful(a,b):

    print a**2+b**2

   

useful(3,4)

 

def myDeco(args):

    print("Hello ,I'm Decorator!")

    print("args:",args) #处理参数 

    def _myDeco(func):#处理函数 

        def __myDeco(*args,**kwargs): #处理函数的参数 

            print ("function name: %s " % (func.__name__) )

            ret = func(*args,**kwargs)

            return ret

        return __myDeco

    return _myDeco

 

@myDeco("my_name")

def run(a,b):

    print("func run start:")

    print("---------------")

    print("run(%s,%s)" % (a,b))

    print("---------------")

    print("func run end")

 

 

run(1,2)

 

class myDecorator(object):

 

    def __init__(self, fn):

        print "inside myDecorator.__init__()" , fn.__name__

        self.fn = fn

 

    def __call__(self,*args):

        self.fn(args)

        print "inside myDecorator.__call__()" ,args[0],args[1],args[2]

 

@myDecorator

def aFunction(a=0,b=0,c=0):

    print "inside aFunction()"

 

print "Finished decorating aFunction()"

 

aFunction(1,2,3)

 

 

 

 

分享到:
评论
1 楼 白云天 2014-12-04  
开发命名规范
工程格式:
    所有代码都小写,如果使用中文开发,所有界面与Python代码都要使用中文,通过导出翻译文件可以制作其它语言包。
ws_project[文件夹]
----------- controllers[存放外部地址接口文件夹]
--------------------------- main.py[外部地址接口py文件]
------------data[初启化模块的数据的文件夹]
-------------------date.xml[初启化模块的数据]
-------------------date_base.xml[初启化模块底层数据]
------------demo[测试数据文件夹]
-------------------model_demo.xml[测试数据]
------------doc[开发特性文件夹文档]
-----------------index.rst[功能与注意事项说明]
-----------------changelog.rst[版本升级日志]
-----------------stage_status.rst[开发阶段]
------------edi[外部数据交换接口文件夹]
-----------------model.py[外部数据交换接口文件夹]
-----------------model_edi.xml[外部数据交换接口文件夹]
------------i18n[翻译文件夹]
------------------ zh_CN.po[中文翻译包]
------------------ zh_TW.po[繁体翻译包]
------------------ en_US.po[英文翻译包]
------------models[继承对象修改文件夹]
------------report[报表模块文件夹]
---------------------model_report.xml[报表数据格式]
---------------------model _report_template.xml[报表引用模板]
------------security[权限设计文件夹]
-------------------------model_security.xml[权限组与过渡规则]
-------------------------ir.model.access.csv[对象权限]
------------static[静态文件引用文件夹]
--------------------description[APP描述文件夹]
------------------------------------icon.png[APP图标]
------------------------------------index.html[APP模块介绍]
--------------------src[基础引用]
--------------------------css[Qweb引用样式文件夹]
--------------------------img[Qweb图片文件夹]
--------------------------js[Qweb JS文件夹]
--------------------------xml[Qwe 界面定义文件夹]
------------templates[静态文件模板文件夹]
------------test[测试文件夹]
------------tests[测试用类文件夹]
------------views[Qweb界面文件夹]
------------wizard[向导文件夹]
------------README.md[模块功能说明]
------------base.xml[用于存放公共的信息如顶层菜单]
------------sequence.xml[用于存放自动号规则]
------------report_qweb_view.xml[定义报表菜单]
------------model_workflow.xml[定义工作流]
总结:
原单上一个model 对应一个model_view.xml,但如果这个对象引用在其它的类中可以不建对应的类文件与视图文件。
    Py内容命名规则
class model (osv. Model):
_name = " ws.qr.code"

方法取值前缀使用下划线
def _all_function(self, cr, uid, ids, field_name, arg, context=None):

按钮 button name后台使用
def but_ state (self, cr, uid, ids, context=None):

XML ID命名
<record id="view_form_model" model="ir.ui.view">

<record id="view_tree_model" model="ir.ui.view">

<record id="view_ search _moel" model="ir.ui.view">

<record id="view_calendar_model" model=" ir.ui.view ">

<record id="action_view_model" model="ir.actions.act_window">

相关推荐

    python函数修饰符@的使用方法解析

    主要介绍了python函数修饰符@的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    05-python-修饰符的使用-operator模块-作用域-动态编译

    python学习笔记,包含修饰符的使用-operator模块-作用域-动态编译

    Python-pythongoto函式修饰符对bytecode进行重定向Python中的goto

    python-goto-函式修饰符, 对 bytecode 进行重定向, Python 中的 goto

    05-python-迭代器-生成器-with语句和上下文管理器-修饰符

    python学习笔记,包含迭代器-生成器-with语句和上下文管理器-修饰符

    kaiwenli#python_book#10.5正则修饰符1

    正则修饰符示例:\w+$ 表示匹配以一个或者多个字母结尾re.M 可以进行多行匹配,每个换行都认为是一个结尾不实用re.M修饰符,只会匹配到最后的 man。

    Python拾趣009 修饰器@简介和简单应用

    在写类的时候经常用到@staticmethod或@classmethod修饰符,这样就可以不需要实例化,直接类名.方法名()来调用。 所以修饰器用到好多地方的。 例子 PyQt AND OpenCV By LiNYoUBiAo 2020/4/19 19:49 from functools...

    python正则-re的用法详解

    今天是review,所以一些基础的概念就不做介绍了,先来看正则中的修饰符以及它的功能: 修饰符 •re.I 使匹配对大小写不敏感 •re.L 做本地化识别匹配 •re.M 多行匹配,影响^和$ •re.S 使.匹配包括换行在内的所有...

    python实现装饰器、描述符

    本人python理论知识远达不到传授级别,写文章主要目的是自我总结,并不能照顾所有人,请见谅,文章结尾贴有相关链接可以作为补充 全文分为三个部分装饰器理论知识、装饰器应用、装饰器延申 装饰理基础:无参装饰器...

    PYTHON 面向对象编程指南

    第1部分讲述用特殊方法实现Python风格的类,分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型...

    Python面向对象编程指南

    第1部分讲述用特殊方法实现Python风格的类,分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型...

    observe:@observe是Python装饰器

    @observe是Python方法的修饰符,它使Python开发人员可以收集有关修饰后的方法的所有基本指标,生成统一的日志和关于失败的易于通知的通知。 日志,指标和通知 所有日志,指标和通知均分为三类: 默认值:未引发...

    【JavaScript源代码】VUE入门学习之事件处理.docx

     系统修饰键 .exact 修饰符 鼠标按钮修饰符 .exact 修饰符 鼠标按钮修饰符 总结 1. 函数绑定 可以用v-on:click="methodName"或者快捷方式 @click="methodName"绑定事件处理函数 @click="m

    Python核心编程第二版

     4.6.5 Python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

    Python编码风格指南(中文版)

    2.17 函数和方法修饰符 2.18 线程 2.19 高级特性 3. Python 编码风格方面的准则 3.1 分号 3.2 每行长度 3.3 圆括号 3.4 缩进 3.5 空行 3.6 空格 3.7 Python 解释器 3.8 注释 3.9 类 3.10 字符串 3.11 TODO style ...

    Python核心编程第二版(ok)

     4.6.5 Python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

    Python 程序执行时间分析器 Chronic.zip

    Python 程序执行时间分析器 Chronic ,Chronic 介于简单的定时器和分析器。通过添加修饰符或包装代码语句来获得程序执行时间。Chron...

    plover-modifiers:用于创建modifiers.json词典的脚本,以解决不支持修饰符的Plover的问题

    千篇一律的修饰符 用于创建modifiers.json词典的脚本,以方便修饰符。 用法 编辑make-modifiers.py文件,然后将所需的键添加到hotkeys变量中。 例如,将["KH-FG", "grave"],到hotkeys数组中,以创建⌘ `切换窗口的...

    Python中的Descriptor描述符学习教程

    简单来说,数据描述符是指实现了__get__、__set__、__del__方法的类属性,等效于定义了三个方法的接口,下面就来详细看一下Python中的Descriptor修饰符学习教程

    Head First Python(第2版) 配套源码

    如果你想知道利用上下文管理器、修饰符、推导式和生成器能够做什么,都可以在这本书中找到。本书将提供一个完整的学习体验,帮助你迅速成为一名Python程序员。为什么这本书如此与众不同?根据认知科学和学习理论的z...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     4.6.5 python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

Global site tag (gtag.js) - Google Analytics