精华内容
下载资源
问答
  • return 后面的内容 加括号不加括号有什么区别 ?
    千次阅读
    2021-11-23 17:10:44

    完全没有区别。
    return 是关键字,不是函数,因此其后面的括号不是必须的;
    加括号易于阅读程序代码,有误括号不影响运行结果。

    更多相关内容
  • //实例化对象,下面这两个如果构造函数没有形参的话,实例化的时候构造函数可以不加括号(推荐加上); var p = new Hello; var p1 = new Hello(); //但是用下边的方式调用getName函数的时候,构造函数有没有...
  • 在维护项目中就无法使用vue等技术来操作,所以一些方法用的是原生来写的,在绑定点击方法时,方法名没加括号,就没生效,加了括号就生效了,当时有疑惑的点是在之前做vue的项目中,我记得不加括号也是完全可以的,...
  • 下面小编就为大家带来一篇浅谈js中调用函数时加不加括号的问题 。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要给大家介绍了关于Python中装饰器兼容加括号不加括号写法的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
  • 在做项目的时候,引入了element-ui的分页功能 发现了...2、以下方法能加(),不加括号页数可以依靠前端组件传入,若写为getList(),则无论前端点多少页,始终维持在第一页。若写为getList(2),则始终保持在第二页 3

    https://blog.csdn.net/qq_40436854/article/details/103923544
    https://www.jianshu.com/p/f35a9848dd22

    在做项目的时候,引入了element-ui的分页功能 发现了问题

    1、getList方法定义:page=1相当于不传参时page默认为1
    在这里插入图片描述

    2、以下方法不能加(),不加括号页数可以依靠前端组件传入,若写为getList(),则无论前端点多少页,始终维持在第一页。若写为getList(2),则始终保持在第二页

    在这里插入图片描述
    3、而条件查询的@click必须传入getList()
    在这里插入图片描述
    若没有加(),会传出未传参错误
    在这里插入图片描述
    原因如下https://blog.csdn.net/qq_41347033/article/details/104479861
    不加括号时,函数第一个参数为 event,加了括号后,需要手动传入 $event 才能获得事件对象
    我的理解就是vue对函数调用加了封装,如果没加()就塞了个event对象进去,加括号则塞了默认值page=1,如果写的是getList(2),则点击查询后跳转的一直是第二页

    展开全文
  • 自定义事件加不加括号的区别 不加括号: <div> <button @click="test">测试</button> </div> test(id){ console.log(id); } 加括号: <div> <button @click="test()"&...

    自定义事件加不加括号的区别

    不加括号:

    <div>
      <button @click="test">测试</button>
    </div>
    test(id){
      console.log(id);
    }

    加括号:

    <div>
      <button @click="test()">测试</button>
    </div>
    test(id){
      console.log(id);
    }

    添加括号传值:

    <div>
      <button @click="test('aaaaa')">测试</button>
    </div>
    test(id){
      console.log(id);
    }

     

    总结:
            加与不加括号的区别在于事件对象参数 event 的处理。不加括号时,函数第一个参数为 MouseEvent,加了括号后,需要手动传入 $event 才能获得事件对象。

    展开全文
  • 所以,我们这个“装饰器的装饰器”做的事情就是,判断装饰器接收的参数,如果只有一个并且第一个参数是可调用的(callable),那么这就是一个无参数的装饰器(需要加括号)。如果还有别的参数,就返回一个生成装饰...

    使用Django的时候,我发现一个很神奇的装饰器:@login_required, 这是控制一个view的权限的,比如一个视图必须登录才可以访问,可以这样用:

    1

    2

    3

    4

    @login_required

    defmy_view(request):

    ...

    returnrender(...)

    同时,如果要达到这样一种效果:如果用户没有登录,那么就把用户重定向到登录界面,可以这样用:

    1

    2

    3

    4

    @login_required(login_url='/accounts/login/')

    defmy_view(request):

    ...

    returnrender(...)

    所以这个装饰器可以带括号写,又可以不带括号写。很神奇有没有。正常的接收参数的装饰器,就算没参数也应该写成@login_required的

    好奇去查了一下,在stackoverflow找到一种实现,挺有意思的。先晒出答案:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    defdoublewrap(f):

    '''

    a decorator decorator, allowing the decorator to be used as:

    @decorator(with, arguments, and=kwargs)

    or

    @decorator

    '''

    @wraps(f)

    defnew_dec(*args,**kwargs):

    iflen(args)==1andlen(kwargs)==0andcallable(args[0]):

    # actual decorated function

    returnf(args[0])

    else:

    # decorator arguments

    returnlambdarealf:f(realf,*args,**kwargs)

    returnnew_dec

    使用起来很简单,只要给装饰器用@doublewrap装饰一下,这个装饰器就支持写括号和不写括号两种写法了。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    deftest_doublewrap():

    fromutilimportdoublewrap

    fromfunctoolsimportwraps

    @doublewrap

    defmult(f,factor=2):

    '''multiply a function's return value'''

    @wraps(f)

    defwrap(*args,**kwargs):

    returnfactor*f(*args,**kwargs)

    returnwrap

    # try normal

    @mult

    deff(x,y):

    returnx+y

    # try args

    @mult(3)

    deff2(x,y):

    returnx*y

    # try kwargs

    @mult(factor=5)

    deff3(x,y):

    returnx-y

    assertf(2,3)==10

    assertf2(2,5)==30

    assertf3(8,1)==5*7

    原理也不难,只有短短不到10行代码。

    装饰器我们都知道,是用来处理一个函数,返回一个新的函数的(如果你不理解装饰器,可以看一下这个经典的解释)。

    1

    new_func=decorator(func)

    我们使用的,就是被装饰器装饰的新函数了。装饰器只是一个语法糖,其实它也是一个函数,给它传入一个函数作为参数,就返回一个新的函数。那么既然装饰器也是一个函数,我们就可以用装饰器装饰这个函数。也就是,“装饰器的装饰器”。

    装饰器第一个参数肯定是原函数,如果装饰器可以接收参数的话,要么第一个参数是原函数,后面跟别的参数;要么就只有原函数一个参数。所以,我们这个“装饰器的装饰器”做的事情就是,判断装饰器接收的参数,如果只有一个并且第一个参数是可调用的(callable),那么这就是一个无参数的装饰器(不需要加括号)。如果还有别的参数,就返回一个生成装饰器的函数(decorator_maker)。

    装饰器是一个函数。装饰器被装饰过之后,这个装饰器运行之前就会先运行装饰器的装饰器的代码,也就是我们的doublewrapp。然后返回值可能是一个装饰器,也可能是一个装饰器的maker(有参数的装饰器),然后装饰器再执行,装饰原函数。

    这里有点绕,因为本来装饰器里面一般就会有三四层函数了,(maker, decorator, wrapper, realfunc),再加上一个装饰器的装饰器,会有点理解困难。如果理解不了,最好不要对着网上的博文(包括本文)企图格物致知了,多去看看代码,多写一写。

    2017年12月31日更新:《Python3 Cookbook》中提供了另一种实现方法,代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    fromfunctoolsimportwraps,partial

    importlogging

    deflogged(func=None,*,level=logging.DEBUG,name=None,message=None):

    iffuncisNone:

    returnpartial(logged,level=level,name=name,message=message)

    logname=nameifnameelsefunc.__module__

    log=logging.getLogger(logname)

    logmsg=messageifmessageelsefunc.__name__

    @wraps(func)

    defwrapper(*args,**kwargs):

    log.log(level,logmsg)

    returnfunc(*args,**kwargs)

    returnwrapper

    # Example use

    @logged

    defadd(x,y):

    returnx+y

    @logged(level=logging.CRITICAL,name='example')

    defspam():

    print('Spam!')

    这种原理也比较好理解,看例子1,我们知道这等价于logged(add),第一个参数是函数,所以直接返回。看例子2,等价于logged(level=logging.CRITICAL, name='example')(spam),logged的第一个参数func是None(如果是装饰器语法,第一个参数会默认传入函数,而这里直接是函数调用,并非装饰器。所以会返回一个partial函数,这个partial函数是真正的装饰器,然后再走后面装饰器的路子。其实,这种方法也是利用了“判断传入装饰器的参数”。

    参考资料

    展开全文
  • 12),command = run()),函数调用时括号,再按按钮,就一直是you hit me ,上面的lable里的内容不再变化了? 解决方案 button = tk.Button(window,text = 'hit',font = (('微软雅黑'),12),command = run) 这句...
  • python的print函数不加括号

    千次阅读 2020-12-05 18:27:50
    在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异主要体现在以下几个方面:1 python3中print是一个内置函。...2.Python2打印时可以不加括号:print'helloworld',Python3则需要加...
  • import './App.css'; function App() { const handleClick=()=>{ console.log(111); } return ( <div className="App"> <button onClick={handleClick()}>button<...加括号 .
  • vue中事件绑定加括号不加括号的区别 @click=“fun” 带括号、写实参的fun默认传event (事件对象) @click=“fun(value)” 只要加括号,无论是否传值,都属于传实参给函数,event (事件对象)就接收到。 如果...
  • 不加括号的,都是把函数名称作为函数的指针,一个函数的名称就是这个函数的指针,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。 function ...
  • javascript调用函数加不加括号的区别

    千次阅读 2019-10-03 01:01:28
    参考文章(JS调用函数加不加括号的区别) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>javascript调用函数加不加括号的区别</title> <script ...
  • 当查询数组是,不加 int[] a ; int len = a.length; 当查询字符串时,要 String b ; int len = b.length();
  • 一、目的 1、想了解:new一个对象后面加括号不加括号的区别 二、参考 1、new一个对象后面加括号不加括号的区别 ...
  • #define宏加括号不加括号的区别

    千次阅读 2019-04-01 21:27:10
    #define 宏是在代码中加任何验证的直接替代,当宏中包含运算符时要在最外层加括号,不然可能会出错 下面使用一个简单的例子来验证一下,代码中定义一个求两个数中最大数的宏: MAX_wrong在外层没有加括号,MAX_...
  • c/c++里的new加括号不加括号的区别

    千次阅读 2020-04-02 17:24:21
    今天上课的时后老师提到:new开辟变量时,后面 ( ) ,与不加 ( ) 的效果是一样的。在验证中发现了一些特殊的地方。 全文总结(分析在下面): 调用系统的默认无参构造函数时,是可以实现创造变量时顺便进行初始化...
  • 括号的是绑定事件,事件触发再执行。 复杂点说,带括号的是把返回值赋值给事件,括号的是把函数体所在地址位置赋值给事件,比如df.shape。 def test(data): return data if __name__ == '__main__': a ...
  • Python3中定义类的时候加括号不加括号有区别吗?

    万次阅读 多人点赞 2020-06-06 13:27:27
    Python3中定义类的时候加括号不加括号有区别吗? 在Python中定义类class的时候,可以加上(): #!/usr/bin/env python3 class Persion(): def __init__(this,name): this.name = name print(this) print(type...
  • 先上代码: def fun1(): return 1 a = fun1() b = fun1 print(type(a)) print(type(b)) ...可见,a = fun1()是,要等函数func1执行完后,得到函数func1执行的结果 ...不加括号,函数根本不用执行..
  • python3中 print不加括号报错!

    千次阅读 2021-01-03 10:51:05
    python 3和python 2的print是有区别,python3需要加括号,但python2需要 >>> print('Hello world!') Hello world! 因为版本原因而报错,确实怪让人讨厌的(〝▼皿▼) 看完记得点赞,(づ ̄3 ̄)づ╭❤~ ...
  • 也就是说,如果使用对象的方法时,如果只有1参数,可以加括号,或不加括号。   这种写法却是错误的 ThisWorkbook.SaveCopyAs (Filename:=ThisWorkbook.Path & "\" & ActiveSheet.Name & ".xlsm") 也...
  • 函数不加括号是指调用函数本身(的内存地址),也可以理解成对函数重命名(希望这对你理解两者的区别有所帮助,如果你觉得没有帮助那就忽略此段逗号后面的内容)。 举个栗子。可能比较长,但耐心看的话你一定会有...
  • go基础之函数使用小技巧(函数调用时加括号不加括号的区别)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 485,333
精华内容 194,133
关键字:

不加括号