首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

再次学习方法参数类型声明

() must be of the type int 在严格模式下,很明显地看出现在这个方法的参数只能接收 int 类型的值了,其他的类型都无法接收,当然也不会像之前文章说过的那样会发生强制转换。...,所以这里是可以传整数过来的,不过上面的 testInt(int $a) 则不能接收 1.1 这样的 float 值。...新学习一个 iterable 类型 最后来介绍个新家伙,除了普通模式下的类、数组、回调函数,严格模式下的各种标量类型声明外,还有一个 iterable 类型的声明,相信大家通过这个单词也能看出来了,可迭代的类型...: Argument 1 passed to testIterable() must be iterable 没错,它包含了数组、实现迭代器接口的类以及生成器相关的内容。...也就是所有可用 foreach 迭代的内容都可以传递过来。

70310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么range不是迭代器?range到底是什么类型?

    ;(3)它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素;(4)它是可迭代对象,却不是迭代器。...zip() 等方法都需要接收确定的可迭代对象的参数,是对它们的一种再加工的过程,因此也希望马上产出确定的结果来,所以 Python 开发者就设计了这个结果是迭代器。...而 range() 方法就不同了,它接收的参数不是可迭代对象,本身是一种初次加工的过程,所以设计它为可迭代对象,既可以直接使用,也可以用于其它再加工用途。...以上是我对“为什么range()不产生迭代器”的一种解答。顺着这个思路,我研究了一下它产生的 range 对象,一研究就发现,这个 range 对象也并不简单。...由此推论,其它修改动作也会破坏等差数列结构,所以统统不给修改就是了。 4、小结 回顾全文,我得到了两个偏冷门的结论:range 是可迭代对象而不是迭代器;range 对象是不可变的等差序列。

    87870

    Python 迭代器 - Iterable对象

    迭代器 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 1....可迭代对象 我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。...: 'int' object is not iterable In [2]: 从上面可以看到错误提示TypeError: 'int' object is not iterable,提示int并不是迭代类型...,自身类也并不是迭代类型。...并不是只有for循环能接收可迭代对象 除了for循环能接收可迭代对象,list、tuple等也能接收。

    2.1K30

    迭代器Python_python进阶路线

    可迭代对象 我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。...for i in 100: print(i) >>> TypeError: 'int' object is not iterable 以上我们可以看出,int整型不是iterable,即int整型是不可以迭代的...: 'Mylist' object is not iterable # MyList容器的对象也是不能迭代的 >>> 我们自定义了一个容器类型MyList,在将一个存放了多个数据的MyList对象放到...for...in...语句中,发现for...in...并不能从中依次取出一条数据返回给我们,也就是说我们随便封装了一个可以存放多条数据的类型并不能被迭代使用。...除了for循环能接收可迭代对象,list、tuple等也能接收。

    24520

    这些python3的小知识点你都知道吗?

    28、pickle pickle的实质就是利用一些算法将你的数据对象存储成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上。...31、__init__()方法 __init__() 特殊方法不应当返回除了 None 以外的任何对象,只能返回None。...如果第二个参数不是类或者由类对象组成的元祖,会抛出一个 TypeError 异常。...迭代器不是一个容器,是实现了next()方法的对象。 42、迭代器不能取上一个值 迭代器性质决定没有办法回退,只能往前进行迭代。不能获取上一个值。...46、生成器、迭代器 生成器所能实现的任何操作都可以用迭代器来代替,因为生成器实际上就是基于迭代器实现的,生成器只是一个yield语句,内部自动创建iter()和next()方法。

    65160

    为啥有时迭代器用一下它就需要更新一下呢(迭代器失效)?

    一、迭代器基本的底层设计 在前言中,我们已经知道了迭代器的设计是对标的 指针 所以它的相关使用和规范也可以看齐指针,如:解引用 * 、基本的运算符······都是相同的。...此时我们回到尾删的情况,在尾删时我们都知道一定会报错的,因为你访问了你已经删除的空间了,而其它位置的删除由于前移的原因,就算是改位置删除了,也有后面的节点来占位,所以我们就可以下结论了,尾删迭代器失效其它位置不会...当然如果不是被删的迭代器就不能用这种方法了,就只能老老实实的重新去找了,一般来说直接减去相应的删除个数就行。...,大家想必也知道了迭代器失效的原因在一些操作后旧迭代器会访问错误的地址,那此时我们就可以类比了。...删除是前移,插入就是后移了,当然也会改变地址迭代器与成员的对应关系,结局方法直接看删除的情况就行了。

    28720

    双向链表的类模板的实现

    ,这里不能更改指针指向,但是可以更改指针指向地址上存储的值 //转换构造---让当前迭代器的成员变量current指向p位置,间接相当于迭代器可以操作当前位置 const_iterator...:current(NULL) {} //const迭代器解引用得到的值不能进行修改,这里是常迭代器 //这里前置const规定了返回值不能修改,这里返回的值是指针指向的地址的值,因此这里不能修改指针的指向和指向的值...::retrive(); } //常对象调用----前置const不能作为重载条件,后置const可以 const T& operator*()const {...begin和end函数里面使用的 //开始迭代器---返回的迭代器已经可以间接操作head->next即第一个有效节点的位置 //注意这里返回的都是临时匿名迭代器对象 iterator...begin和end函数里面使用的 //开始迭代器---返回的迭代器已经可以间接操作head->next即第一个有效节点的位置 //注意这里返回的都是临时匿名迭代器对象 iterator

    99110

    Python快速学习第七天

    但即使看不到两者在当前代码中的大量应用,也不要忽视静态方法和类成员方法的应用(比如工厂函数),可以好好地考虑一下使用新技术。...到现在为止只在for循环中对序列和字典进行过迭代,但实际上也能对其他对象进行迭代:只要该对象实现了__iter__方法。...注:内建函数list可以从可迭代的对象中获得迭代器。...9.6.2 从迭代器得到序列 除了在迭代器和可迭代对象上进行迭代(这是经常做的)外,还能把它们转换为序列。...在大部分能使用序列的情况下(除了在索引或者分片等操作中),都能使用迭代器(或者可迭代对象)替换。关于这个的一个很有用的例子是使用list构造方法显式地将迭代器转化为列表。

    2.3K50

    Python进阶:全面解读高级特性之切片!

    切片既可以作为独立对象被“取出”原序列,也可以留在原序列,作为一种占位符使用。...TypeError: MyList indices must be integers or slices 从输出结果来看,自定义的 MyList 既支持按索引查找,也支持切片操作,这正是我们的目的。...4.1、迭代与迭代器 首先,有几个基本概念要澄清:迭代、可迭代对象、迭代器。...这句话可以解析出两层意思:(1)可迭代对象跟迭代器是两种东西;(2)可迭代对象能变成迭代器。 实际上,迭代器必然是可迭代对象,但可迭代对象不一定是迭代器。两者有多大的区别呢? ?...' object is not subscriptable 迭代器因为缺少__getitem__ ,因此不能使用普通的切片语法。

    93740

    python 基础内置函数表及简单介绍

    第二个参数不能是一个字符串。每个参数可以是任何数字类型(包括复数)。如果省略了 imag,它将默认为零,并且构造函数用作像 int 和 float 这样的数字转换。...enumerate(iterable,start=0) 返回一个枚举对象。 iterable 必须是一个序列,一个迭代器或其他支持迭代的对象。...frozenset 是不可变的,存在哈希值,它可以作为字典的 key,也可以作为其它集合的元素。一旦创建便不能更改,没有 add,remove 方法。...使用多个迭代器时,当最短迭代器耗尽时,迭代器停止。...当最短的输入迭代耗尽时,迭代器停止。使用单个迭代参数,它将返回 1 元组的迭代器。没有参数,它返回一个空的迭代器。

    1.3K20
    领券