- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
真的很抱歉这个极其愚蠢的标题,但如果我知道它是什么,我就不会写在这里 (:
def some_decorator( func ):
# ..
class A:
@some_decorator
def func():
pass
@func.some_decorator # this one here - func.some_decorator ?
def func():
pass
some_decorator
装饰 func
- 没关系。但是什么是 func.some_decorator
以及 some_decorator
如何成为 func
的成员(或其他什么?)?
附言我 90% 确定这里有这样的问题(因为这看起来很基本),但我不知道如何搜索它。如果有完全重复,我会删除这个问题。
注意:这两个成员函数都被命名为func
,这不是拼写错误,也不是偶然的。装饰器用于重载:问题与Decorating method (class methods overloading)有关
最佳答案
请记住,带有装饰器的函数定义等同于:
def func():
pass
func = some_decorator(func)
所以在下面几行中,func
不是指您定义的函数,而是指装饰器将其变成的函数。另请注意,装饰器可以返回任何 对象,而不仅仅是函数。所以 some_decorator
返回一个带有方法的对象(不幸的是,名称 some_decorator
和 func
在示例中被重用 - 这很令人困惑,但不会' t 改变任何关于这个概念的东西)它本身就是一个装饰器。由于首先评估 @
之后的表达式,因此在定义另一个普通函数 func
之后,您仍然可以引用第一个装饰器的方法。该装饰器应用于此新功能。完整的例子等同于:
class A:
def func():
pass
func = some_decorator(func)
_decorator = func.some_decorator
def func():
pass
func = _decorator(func)
关于python - 这怎么称呼以及如何完成( `function_name.decorator`)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010102/
createHiveBackground 函数返回我要分配给状态的对象数组。稍后在我的应用程序中,我将使用 setHive 来更改数组的一些值。这些有什么区别? const [hive, setHiv
当我使用 window.onload=function name() 其中 function_name 是一个 javascript 函数时,该函数没有被执行。但是当我使用 window.onload
我的类结构是这样的。 class A(): def __init__(self): self.matched_condition_set = set() def add
很多时候我看到如下语句 Y.CustomApp.superclass.render.apply(this, arguments); 我知道应用是如何工作的。根据 MDN Calls a functi
真的很抱歉这个极其愚蠢的标题,但如果我知道它是什么,我就不会写在这里 (: def some_decorator( func ): # .. class A: @some_decora
void foo(int a) { cout <
我目前正在做一个 python 教程,但他们使用 IDLE,我选择在终端上使用解释器。所以我必须找出如何导入我创建的模块。一开始我试过 import my_file 然后我尝试自己调用模块内部的函数,
假设我有两个 x86 汇编语言函数定义为: .globl func_name1; .type func_name1, @function; .align 2; func_name1: /
我们有以下工作测试示例: "use strict"; var should = require("chai").should(); var multiply = function(x, y) {
我有一个上传文件按钮。 注意:onclick="getFile()" 因此,当单击 btn 时,将调用 getFile() 函数。 HTML click to upload
我正在开发一个程序,该程序将文件中的高度值读取到二维数组(矩阵)中,并且我试图将该数组传递给另一个找到最大值的函数。我知道,默认情况下,数组是通过引用传递的,但我并没有试图在函数中更改数组的值,所以这
这是 utils.hpp 中定义的函数原型(prototype)声明(非 OOP,因此不在任何类中) static void create_xy_table(const k4a_calibration
找到一个好的标题有点困难,如果这个标题具有误导性,我们深表歉意.. 我想编写一个函数,它将接受其他函数(及其可能的参数)以及其他参数。 例如我有以下功能: def f1(): pass def
我想将一个 HTML 页面(组件)用于另一个组件。但是我找不到点击事件。 Dashboard.component :- import { Component, OnInit, AfterViewIni
所以这是代码: #include #include void draw(int length, char brush); int stringLength(char name[]); void d
我有一个用 C 编写的开源项目,正在学习用 C++ 包装它。 C 中使用的所有函数都在 header 中定义,并且我已将 C++ 代码中的这些函数链接为静态库(具有 include 和 lib 文件)
这个问题在这里已经有了答案: Know JavaScript Function Expression vs Function Declaration, but what is this? Named
我从 Windows 转到了 Ubuntu,我想在 Ubuntu 上尝试一些 C++ 编程。所以这是非常简单的代码和非常愚蠢的错误,我无法解决: 马.h #ifndef _horse_ #define
import networkx as nx #@UnresolvedImport from networkx.algorithms import bipartite #@UnresolvedImpor
在名为 ::foo() 的函数中,我不明白语法的用途。如果它是 foo::count_all() 那么我知道 count_all 是类或命名空间 foo 的函数。 在 ::foo() 的情况下,::
我是一名优秀的程序员,十分优秀!