python 零散记录(六) callable 函数参数 作用域 递归
callable()函数:
检查对象是否可调用,所谓可调用是指那些具有doc string的东西是可以调用的。
函数的参数变化,可变与不可变对象:
首先,数字 字符串 元组是不可变的,只能替换。
对以前的形参实参的理解适用于这些不可变对象。即形参实参互不影响。
但是对于可变对象如list dict,形参与实参就会互相影响。
如果想拿到一个副本从而不影响原变量,用列表分割:mylist[:]
收集参数:
func(a,*b):
b接受除了第一个给a的余下参数,以元组形式储存
func(a,*b,**c):
a接受完,剩下的给b,如果有x=xx这种形式的关键字参数则给c
作用域(名字空间):
vars():
返回模块中所有“不可见的”字典,也就是所有变量与值的映射关系,以字典形式展示。
类似class中的__dict__ 类名.__dict__
globals():
返回所有全局变量
locals():
返回所有局部变量
在函数中声明或明确指定使用全局变量,要先声明:
globals x
x = 1
递归:
自身调用自身
满足两个条件:
1.当函数直接返回值时有基本实例(最小可能性,也就是有头,有尽头从无穷递归到最小时可以完结)。
2.递归实例,包括一个或多个问题最小部分的递归调用(有递归的条件)
如算阶层:
#普通方法
def putong(n):
result = n
for i in range(1,n):
result *= i
return result #递归方法
#条件1:1的阶层是1
#条件2:大于1的n的阶层是n*n-1
def digui(n):
if n == 1:
return 1
else:
return n * digui(n-1)
python 零散记录(六) callable 函数参数 作用域 递归的更多相关文章
- python学习day10 函数Ⅱ(参数&作用域)
函数Ⅱ(参数&作用域) 知识小结: py2与py3的区别 逻辑运算()>not>and>or 字符串翻转切片翻转 is与==区别 git相关 数据类型判断 操作系统:cent ...
- Python进阶(二)----函数参数,作用域
Python进阶(二)----函数参数,作用域 一丶形参角度:*args,动态位置传参,**kwargs,动态关键字传参 *args: 动态位置参数. 在函数定义时, * 将实参角度的位置参数聚合 ...
- python通过装饰器检查函数参数的数据类型的代码
把内容过程中比较常用的一些内容记录起来,下面内容段是关于python通过装饰器检查函数参数的数据类型的内容. def check_accepts(f): assert len(types) == f. ...
- Python学习-函数,函数参数,作用域
一.函数介绍 函数定义:函数时组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 我们已经知道python提供了许多内建函数,print(), type()等.我们也可以自己创建函数,这被叫 ...
- Python学习(六) —— 函数
一.函数的定义和调用 为什么要用函数:例如,计算一个数据的长度,可以用一段代码实现,每次需要计算数据的长度都可以用这段代码,如果是一段代码,可读性差,重复代码多: 但是如果把这段代码封装成一个函数,用 ...
- python 装饰器修改调整函数参数
简单记录一下利用python装饰器来调整函数的方法.现在有个需求:参数line范围为1-16,要求把9-16的范围转化为1-8,即9对应1,10对应2,...,16对应8. 下面是例子: def fo ...
- Python学习总结18:函数 参数篇
1. 判断函数是否可调用 >>> import math >>> x = 1 >>> y = math.sqrt >>> cal ...
- Python学习(六)—— 函数、全局变量与局部变量
函数 函数的定义 def test(x): "The function definition" x += 1 return x def:定义函数的关键字 test:函数名 ():内 ...
- Python学习札记(十三) Function3 函数参数二
参考:函数参数 Note A.关键字参数: 1.关键字参数:**kw 可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple.而关键字参数允许你传入0个或任意个含参数名的 ...
随机推荐
- How to change Visual Studio default environment setting
如何改变 Visual Studio 的默认环境设置: 1. 工具栏 Tools --> Import and Export Settings... 2. 选择 Reset All Settin ...
- siege 压力测试
Ben: $ siege -u shemp.whoohoo.com/Admin.jsp -d1 -r10 -c25 ..Siege 2.65 2006/05/11 23:42:16 ..Prepari ...
- 关于Linux内核学习的误区以及相关书籍介绍
http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html 写给Linux内核新手-关于Linux内核学习的误区 先说句正经的:其实 ...
- absolute之实现居中的三种方式
居中思想可以由很多方式实现,这篇文章采用absolute实现:由传统方式开始到absolute独立使用方式 方式一:传统方式,父容器relateive,子元素absolute,然后left:50%,再 ...
- spring拦截器
一:拦截器配置 <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path=&qu ...
- Uploadify 上传失败
更改Apache的php.ini的配置 In my php.ini (created custom ini file in public_html) would this solve this pro ...
- 学习PHP 301跳转的方法
发布:JB01 来源:脚本学堂 [大 中 小]本文详细介绍了,在php编程中实现301跳转,即301永久重定向的方法,感兴趣的朋友可以参考学习下. 本文转自:http://www.jbxu ...
- shell中case的用法学习笔记
这篇文章主要为大家介绍shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码. 本文转自:http://www.jbxue.com/article ...
- php中getimagesize函数的用法
php获取图片信息getimagesize,php自带函数.获取图片的类型,尺寸的方法有许多,该函数仅是方法之一. getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC ...
- MVC + JQUERY + AJAX