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

Python入门之函数介绍定义定义类型函数调用Return

本篇目录:     一、 函数介绍     二、 函数定义     三、 定义函数三种类型     四、 函数调用阶段     五、 Return返回值 ===================...三、定义函数三种类型   1. ...def auth(inp_name, pwd): ''' 该函数用来验证return结果是元组类型 ''' res = interactive() x = res[0] y...2.3 return返回值用逗号分割,返回多个值,组成一个元组(类型) ?     2.4 如果函数体内有多个Return,则返回第一Return值(Return代表函数结束) ?...# return返回值没有类型限制 # 函数内可以写多个return,但是只到第一个return就结束 # return函数结束标志

1.3K50

可变数据类型不能作为python函数参数

可变数据类型:列表、字典 不可变数据类型:整型、浮点型、字符串、元组 为什么可变数据类型不能作为python函数参数?...请看以下例子: def foo(a=[]): a.append(1) return a print(foo()) print(foo()) print(foo()) 结果: [1] [1, 1]...[1, 1, 1] 我们继续打印下每次函数返回值内存地址: print(id(foo())) print(id(foo())) print(id(foo())) 结果: 140344852133960...) print(test()) print(b) 结果: [1, 2] [1, 2, 1] [1, 2, 1] [1, 2, 1, 1] [1, 2, 1, 1] 当使用列表作为参数传入函数时,实际上是引用传递...函数也是对象,可以这么理解,一个函数是一个被它自己定义而执行对,;默认参数是一种"成员数据",所以它们状态和其他对象一样,会随着每一次调用而改变。 怎么避免这种现象呢?

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

Kotlin学习之路(2)数据类型

硬关键字(Hard Keywords)不能作为标识符,软关键字(Soft Keywords)、修饰符关键字(Modifier Keywords)在它们适用场景之外可以作为标识符使用。...软关键字(Soft Keywords),软关键字是在它适用场景中不能作为标识符,而其他场景中可以作为标识符,具体包括如下关键字, by、catch、constructor、delegate、dynamic...修饰符关键字(Modifier Keywords),修饰符关键字是一种特殊软关键字,它们用来修饰函数、类、接口、参数和属性等内容,在此场景中不能作为标识符。...简单来说Kotlin不支持范围小数据类型隐式转为取值大类型。在Kotlin中不允许通过Java前缀表达式来强制转换类型!...) 放到IDE中直接标红,没办法编译,更不能产生NullPointErexception了 (2)先判断后使用 可空类型变量不允许直接调用方法或者属性,但是可以先判断该变量不为null,然后再调用该变量方法或者属性

75620

第3章 Kotlin 可空类型类型系统第3章 Kotlin 可空类型类型系统

我们不能直接使用可空nullableStr来调用其属性或者方法 >>> nullableStr.length error: only safe (?.)...如果是一个可空Unit?,它类型是Any?。 ? Unit类型结构 3.4.2 NothingNothing?类型 在Java中,void不能是变量类型。也不能被当做值打印输出。...index $index.") } } 一个空List调用get函数, 直接是抛出了IndexOutOfBoundsException ,这个时候我们就可以使用Nothing 作为这个get...Nothing类型表达式计算结果是永远不会返回(跟Java中void相同)。 Nothing?可以只包含一个值:null。代码示例: >>> var nul:Nothing?...Kotlin中还引入了Unit,Nothing等特殊类型,使得没有返回值函数与永远不会返回函数有了更加规范一致签名。

2.1K20

From Java To Kotlin 2:Kotlin 类型系统与泛型终于懂了

##### 例子: 函数类型函数参数 虽然不能说Java中所有函数调用都是表达式,但是可以说Kotlin中所有函数调用都是表达式。...当 Nothing 类型作为函数参数时,一个有趣现象就出现了: ```kotlin // 这是一个无法调用函数,因为找不到合适参数 fun show(msg: Nothing) {} show(...由于 Nothing 构造函数是私有的,我们将无法调用 show 函数,除非我们抛出异常,但这没有意义。 这个概念在泛型星投影时候是有应用,具体后面会解释。...这个类型则没有太多实际意义。 - 当 Nothing 作为函数返回值时,意味着这个函数**永远不会返回结果**,而且还会截断程序后续流程。Kotlin 编译器也会根据这一点进行流程分析。...- 当 Nothing 作为函数参数时,就意味着这个**函数永远无法被正常调用**。这在泛型星投影时候是有一定应用。 - Nothing 可以看作是 Nothing?

42450

《Kotlin 极简教程 》第4章 基本数据类型类型系统

在20世纪五六十年代,这种分类扩展到了结构化数据和高阶函数中。 70年代,引入了几个更为丰富概念,例如:参数化类型,抽象数据类型,模块系统,子类型等等,类型系统作为一个独立领域形成了。...例如,在强类型语言中,如果没有对字符串+进行重载,那么表达式 "Hello, World" + 3 就会被编译器检测出来,因为不能对字符串加上一个整数。强类型提供更多安全性。...另外,void也可以算是一种特殊基本类型,它也有一个装箱类Void(跟我们后文讲到Unit、Nothing相关)。因为,Void是不能new出来,也就是不能在堆里面分配空间存对应值。...^ 注意:Unit与Nothing之间区别: Unit类型表达式计算结果返回类型是Unit。...Nothing类型表达式计算结果是永远不会返回(跟Java 中void相同)。 例如,throw关键字中断表达式计算,并抛出堆栈功能。

2.1K20

Kotlin Primer·第四章·Kotlin 类特性(下)

5.1.2 Nothing 如果一个函数不会返回(也就是说只要调用这个函数,那么在它返回之前程序肯定出错了,比如一定会抛出异常函数),理论上你可以随便给他一个返回值,通常我们会声明为返回 Nothing...带入到上面的代码,实际上就是把..看做是方法名,调用 1 rangeTo方法,传入 100 作为参数,会返回一个区间对象。 然后再用迭代器 in 便利区间中每一个值。...这时候我们可以用一个单词或字母来当运算符用(其本质还是函数调用),叫做中缀表达式,所谓中缀表达式就是不需要点和括号方法调用。...首先声明了一个名为printMsg Lambda,它接受一个 String 类型作为参数,然后在 main 函数调用它。如果还想省略,你还可以在调用时直接省略invoke,像函数一样使用。...fun printLog(vararg str: String) { } 5.3.2 高阶函数 Lambda 表达式最大特点是可以作为参数传递。当定义一个闭包作为参数函数,称这个函数为高阶函数

44820

python 基础语法笔记

记录python一些基础语法,用于查阅 列表和元组 列表和元组都是有序,可以存储任意数据类型集合 列表是动态,长度可变,存储空间和性能略逊与元组 元组是静态,长度大小固定,不能增加修改 创建一个列表使用...会保留1/3大小,小于时扩容并rehash 可变元素不能作为key # 初始化 d1 = {'name': 'jason', 'age': 20, 'gender': 'male'} d2 = dict...这个关键字 # 不需要申明类型 def my_sum(a, b): return a + b # 设置默认值 def func(param = 0): # 函数定义嵌套,内部函数无法被外部直接调用...) lambda 主体是只有一行简单表达式,并不能扩展成一个多行代码块 lambda argument1, argument2,... argumentN : expression square...return cls(title=title, author=author, context='nothing') # 成员函数 def get_context_length(

25620

7个处理JavaScript值为undefined技巧

2.3 函数参数 函数参数默认默认为undefined。 通常,应使用相同数量参数调用使用特定数量参数定义函数。...函数调用结果是'未定义'。...当一个换行符位于return和返回表达式'return \ n expression之间时,ASI自动在换行符之前插入一个分号; \ n表达式。 在函数内部意味着什么return;语句?...of a function that returns nothing 当方法调用返回空时 大多数情况下,直接与'undefined'进行比较是一种不好做法,因为你可能依赖于上面提到允许但不鼓励做法...let 使用默认值作为无意义函数参数 验证属性存在或用缺省属性填充不安全对象 避免使用稀疏数组 本文完~

5.9K30

《Kotlin极简教程》第3章 Kotlin语言基础第3章 Kotlin语言基础《Kotlin极简教程》正式上架:参考资料

在 Kotlin 中 throw 是表达式,它类型是特殊类型 Nothing。...如果函数存在且其返回类型为 R,那就表达式 +a 具有类型 R。 编译器对这些操作以及所有其他操作都针对基本类型做了优化,不会引入函数调用开销。...检查函数返回类型是 T 类型。 计算表达式步骤是: 把 a 初始值存储到临时存储 a_ 中 把 a.inc() 结果赋值给 a 把 a_ 作为表达式结果返回 ( a-- 同理分析)。...我们定义一个扩展,其实并没有在一个类中插入新函数,仅仅是通过该类型变量,用点.表达式调用这个新函数。...类型变量na ,然后直接调用length属性,这将是不安全。编译器会直接报错: >>> var na:String?

1.6K20

Kotlin | 一份10万字随查笔记,妈妈再也不担心我不会Ctrl+F了

Lambda 表达式简化 函数参数调用时最后一个 Lambda 可以移出去 函数参数只有一个Lambda,调用时小括号可省略 Lambda 只有一个参数 可默认为 it 入参,返回值与形参一直函数可以用函数引用方式作为实参传入...中缀表达式 只有一个参数,且用 infix 修饰函数 //infix(中缀表达式) 定义函数不必动过.xx() 形式调用,而是可以通过函数名(不必写括号) 调用。...{ return null } 尾递归优化 尾递归指的是函数调用自己之后没有任何操作,也就是一个函数中所有递归形式调用都出现在函数末尾。...经历了一波操作 Android艺术探索 , 99 Nothing 在你判断逻辑中,充当永远不可能调用哪一项,比如你有一个when选择语句,就可以使用Nothing作为else返回。...您可以使用Nothing来表示“一个永不存在值”:例如,*如果函数返回类型Nothing,则表示该函数永不返回(总是引发异常)。

2.6K20

Kotlin基础

HelloWorld: 2、常见数据类型 3、类型推断 4、取值范围 5、函数 6、字符模版 7、字符串比较 8、方法参数与null 9、when 条件语句 9、循环 和 区间 10、list 与 map...11、函数表达式 12、默认参数和具名参数 13、Stirng 与 Int 互转 14、异常处理 15、尾递归优化 二、面向对象 1、继承 2、接口 3、代理和委托 by 4、单例 object 5...适用于调用同一个类多个方法时,可以省去类名重复,直接调用方法即可,经常用于Android中RecyclerView中onBinderViewHolder中,数据model属性映射到UI上: 没有使用...//infix 自定义运算符中缀表达式。...本没有on,自定义一个,不需要类名.方法即可调用 //传入任意类型,返回一个Boolean类型参数 infix fun on(any: Any): Boolean{ return

30820

【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )

文章目录 一、函数头声明 二、函数参数 1、默认参数值 2、具名参数 三、Unit 函数 四、TODO 函数抛出异常返回 Nothing 类型 五、反引号函数名 六、匿名函数 七、匿名函数函数类型...十五、Lambda 表达式作为参数简略写法 1、Lambda 表达式作为唯一参数简略写法 2、Lambda 表达式作为最后一个参数简略写法 十六、内联函数 1、Lambda 表达式弊端 2、"...Nothing 类型 ---- 在 Kotlin 中 有一种函数 TODO 函数 , TODO 函数 唯一作用 就是 抛出异常 , 该函数 执行永远失败 , 并且 返回 Nothing 类型 ; TODO...B 和 匿名函数 C 中变量 ; 在 匿名函数 B 中 , 不能引用 匿名函数 C 中变量 ; 高级函数概念 : 在 函数式编程 中 , 经常使用 高级函数 , 高级函数 是使用 函数类型变量 作为...参数 或 返回值 函数 ; 使用 匿名函数 / Lambda 表达式 / 闭包 作为 参数 / 返回值 函数 是 高级函数 ; Kotlin 中经常使用 链式调用 , 就是 函数式编程 风格

1.7K20
领券