python中在函数后面有一个小括号和一个中括号是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中在函数后面有一个小括号和一个中括号是啥意思相关的知识,希望对你有一定的参考价值。

tf.shape(features["image"])[0]

all_logits[sup_bsz : sup_bsz + aug_bsz]

分别是什么意思呢

python语言最常见的括号有三种,分别是:小括号( )、中括号[ ]和大括号也叫做花括号 。其作用也各不相同,分别用来代表不同的python基本内置数据类型。 1、python中的小括号( ):代表tuple元组数据类型,元组是一种不可变序列。创建方法很简单,大多时候都是用小括号括起来的。 >>> tup = (1,2,3) >>> tup (1, 2, 3) >>> >>> ()#空元组 () >>> >>> 55,#一个值的元组 (55,) 2、python中的中括号[ ]:代表list列表数据类型,列表是一种可变的序列。其创建方法即简单又特别,像下面一样: >>> list('python') ['p', 'y', 't', 'h', 'o', 'n'] 3、python大括号 花括号:代表dict字典数据类型,字典是由键对值组组成。冒号':'分开键和值,逗号','隔开组。用大括号创建的方法如下: >>> dic='jon':'boy','lili':'girl' >>> dic 'lili': 'girl', 'jon': 'boy' >>> 参考技术A 函数带小括号表示执行这个函数,函数如果带参数的话也会输入到这个小括号里,如果后面还有一个方括号的话,说明这个函数的返回是一个可迭代对象,比如字符串,元组,列表,集合等之类的数据。
tf.shape(features["image"])[0],后面的中括号表示取返回结果的索引值为0的值
all_logits[sup_bsz : sup_bsz + aug_bsz] 是切片操作本回答被提问者和网友采纳
参考技术B ()是要在小括号里面传函数参数,后面的[]是因为函数返回一个数组/列表所以用[0]取得索引为0处的值 参考技术C 你不能把这两者混为一谈,函数+(*args,**kwargs)是函数的调用,函数调用后后面[]是对于函数返回值的相关操作

立即执行函数

1.立即执行函数有两种写法:(立即执行函数是在定义函数时直接执行)

( function()… )()和( function ()… () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的

2.使用立即执行函数的好处

通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象,将全局对象以参数形式传进去即可,如jQuery代码结构:

技术图片

其中window即是全局对象。作用域隔离非常重要,是一个JS框架必须支持的功能,jQuery被应用在成千上万的JavaScript程序中,必须确保jQuery创建的变量不能和导入他的程序所使用的变量发生冲突。

3.立即执行函数和闭包有什么关系

和普通函数传参一样,立即执行函数也可以传递参数。如果在函数内部定一个函数,而里面的那个函数能引用外部的变量和参数(闭包),我们就能用立即执行函数锁定变量保存状态。

<div>
    <ul>
        <li><a>第一个超链接</a></li>
        <li><a>第二个超链接</a></li>
    </ul>
</div>
  var elems = document.getElementsByTagName(‘a‘);
    for(var i=0; i < elems.length; i++)
      (function (LockedInIndex)
        elems[i].addEventListener(‘click‘, function (e)
          e.preventDefault();
          alert(‘I am cliick Link #‘ + i);
        , ‘false‘)
      )(i)
   

以上是关于python中在函数后面有一个小括号和一个中括号是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

python函数后面有多个括号怎么理解?

对python函数后面有多个括号的理解?

立即执行函数

JS:javascript 函数后面有多个小括号是怎么回事?f( )( )( )...

字符串对象

创建集合的时候,集合后面的尖括号填一个泛型,那么这个泛型是必须存在的类吗?