`

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函数修饰符@的使用方法解析

    函数修饰符,又称装饰器(Decorator),是Python编程语言中的一个重要特性。装饰器本质上是一个函数,它允许你修改其他函数或方法的行为,而无需更改原有函数的代码。函数修饰符能够以非常简洁的方式来添加额外的...

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

    在Python编程语言中,了解和熟练使用修饰符、`operator`模块、作用域以及动态编译是提升代码效率和质量的关键。这篇学习笔记将深入探讨这些主题,帮助你更好地掌握Python编程的核心概念。 首先,我们来看看修饰符。...

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

    标题所提到的"Python-pythongoto函式修饰符"可能是指一种利用Python字节码来模拟goto功能的技术。Python的源代码首先会被编译成字节码,这是一种低级别的中间表示,然后再由Python解释器执行。通过直接操作这个字节...

    repeated限定修饰符的使用

    在protobuf中,`repeated`限定修饰符是一个非常重要的概念,用于表示一个字段可以有多个值,类似于数组或列表。本文将深入探讨`repeated`限定修饰符的使用及其相关知识点。 首先,我们需要理解protobuf的基本语法。...

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

    在Python编程语言中,迭代器、生成器、with语句和上下文管理器以及修饰符是四个非常重要的概念,它们在处理数据流和资源管理时起着关键作用。以下是关于这些知识点的详细解释: 1. **迭代器**: - 迭代器是一种...

    kaiwenli#python_book#10.5正则修饰符1

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

    疯狂Python讲义,疯狂python讲义pdf,Python

    - 封装:通过访问修饰符实现数据的保护。 3. 模块与包: - Python标准库:了解Python自带的模块,如os、sys、math等,以及如何导入和使用它们。 - 第三方模块:如numpy用于科学计算,pandas用于数据分析,...

    java2python--java代码转python工具

    Python没有公有、私有访问修饰符,所以转换时需考虑访问控制的相应调整。 2. 方法和函数:Java的方法在Python中被映射为函数,包括构造函数、抽象方法和重载方法。Python不支持重载,所以转换可能需要合并相似功能...

    js代码-正则表达式的s修饰符使.能匹配\n或\r

    能匹配\n或\r",这个知识点的核心就是理解`s`修饰符的作用以及如何在JavaScript代码中使用它。`\n`是换行符,`\r`是回车符,这两个字符在文本处理中经常用于表示新行。在很多编程语言中,包括JavaScript,`.`不匹配`...

    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中,可以通过访问修饰符来实现封装,如`public`(默认,无需修饰符)、`private`(前缀`_`)和`protected`(前缀`__`)。封装有助于保护数据,防止外部代码随意修改对象状态。 6. 多态: 多态允许不同类的...

    Python提高.zip

    在Python中,通常通过设置访问修饰符来实现封装,尽管Python没有像Java那样的严格访问控制,但我们可以使用下划线(_)来暗示不鼓励直接访问的属性或方法。例如,一个类可以有一个`__private`变量,表示这是内部使用...

    Python3.6中文手册(官方文档)

    - **访问控制**:通过public、private和protected修饰符控制成员的访问权限。 4. **高级特性**: - **装饰器**:允许在不修改原有函数代码的情况下,扩展其功能。 - **生成器**:通过yield关键字创建迭代器,...

    Python_编码风格指南中译版

    虽然Python支持多线程编程,但在Google App Engine环境中,由于其限制,线程的使用并不推荐。应当寻找其他替代方案,如异步IO或任务队列,以避免因环境限制导致的问题。 ##### 1.1.19 高级特性 Python提供了一些...

    python3程序开发指南中文

    - 封装与抽象:讲解如何通过访问修饰符实现数据封装,以及如何通过接口实现抽象。 3. **异常处理** - 异常和错误:了解Python中的异常结构,如何捕获和处理异常,以及常见的内置异常类型。 - 错误调试:学习如何...

    Python程序设计题库

    Python是一种广泛使用的高级编程语言,其特点是简单易学,语法简洁,接近自然语言,因此很适合初学者。Python是免费开源的,可以在多种平台上运行,具备良好的可移植性。它是一种面向对象的语言,拥有丰富的内置库和...

    python中访问限制共3页.pdf.zip

    Python不像Java或C++那样有明确的public、private、protected等访问修饰符,但它通过命名约定来实现访问控制。默认情况下,所有定义在类内部的成员(属性和方法)对类的任何地方都是可见的,即它们是公开的(public...

    python实现装饰器、描述符

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

Global site tag (gtag.js) - Google Analytics