有参参数

函数的作用

 1 减少代码的冗余

 2 提高了代码的重用性

 3 提高了代码的可读性

 4 增强了代码的可扩展性

概念:

 面向过程编程:功能与功能之间的耦合很紧密

 解耦:将一个复杂的功能分解成多个简单的功能,并且将功能与功能之间的影响减到最小

    函数里面不宜放一个复杂的功能

在定义函数后最好时在函数名下面解释一下这个函数的功能。

二 定义有参函数

 1 位置参数必须要在默认参数的前面


1

2

3

4

# def fang(a,b=18):

#     return a,b

# ret=fang(‘方杰‘)

# print(ret)

 2 默认参数就是在定义阶段时就给参数传入了参数的值。


1

2

3

def aa(a=9):

#     print(a)

# aa()

 3 定义阶段时不建议传入可变的数据类型作为默认参数的值

 4 动态参数:*args和**kwargs:在定义阶段,*是将一个个位置参数聚合成一个元组。

                     **是将一个个关键字参数聚合成一个字典

    在不确定传入参数的个数时,可以直接传入动态参数

    在定义阶段传入动态参数可以hold 100%的传参。

 5 传参必须遵守的顺序:位置参数——》*args——》默认参数——》**kwargs。不管哪个参数不用定义,都得遵循这个定义这个有参函数的顺序。


1

2

3

# def aa(a,*b,c=1,**d):

#     print(a,b,c,d)

# aa(1,2,3,4,55,e=6,f=7)

三 执行有参函数

 1 位置参数必须在关键字参数的前面


1

2

3

# def aa(a,b):

#     print(a,b)

# aa(1,b=2)

 2 在定义时假如只有位置参数,那么执行的时候传参个数必须要一一对应


1

2

3

def aa(a,b,c,d):

    print(a,b,c,d)

aa(1,2,3,4)

 3 默认参数在调用时可以不用传参,没有传参,默认参数就会用定义时给的参数的值,也可以传参,传入参数,就会使用在调用时传入的参数(注意:在不同的环境下,传参的方式不同)


1

2

3

4

5

6

7

8

# def aa(a=9):

#     print(a)

# aa()

# def aa(a=1):

#     print(a)

# aa(3)

 4 *args动态参数:只基于位置传参上使用,将位置传参多余的参数值以一个元组的形式聚合在一起。在执行的时候假如使用*,就是将一个列表或者元组的元素打散,变成多个位置参数在聚合成一个元组的类型


1

2

3

4

5

6

7

8

# def aa(a,*b):

#     print(a,b)

# aa(1,2,3,4,5,6,7)

# def aa(*a):

#     print(a)

# l=[1,2,3,4,5]

# aa(*l)

 5 **kwargs动态参数:只基于关键字参数上使用,将多余额关键字参数以一个字典的形式聚合到一起。在执行的时候假如使用**,就是讲一个字典的元素打散,变成多个关键字参数。在聚合成一个字典的类型


1

2

3

4

# def aa(**a):

#     print(a)

# d={‘b‘:1,‘a‘:2,‘c‘:3}

# aa(**d)

四 嵌套函数

 1 外部函数是不能直接调用内部函数的。

 2 内部函数是不能在外部函数外直接单独调用

 3 假如要调用为内部函数,必须要在外部函数内执行。内部函数必须是在外部函数执行时才能执行。


1

2

3

4

5

6

# def func():

#     print(22)

#     def func1():

#         print(11)

#     func1()

# func()

 4 有参嵌套函数:

  4,1 如果要在外部函数传入参数,和内部函数链接,就要在外部函数传入先对应的参数个数来连接内部函数定义的参数。


1

2

3

4

5

# def func(x,y,z):

#     def func1(a,b,c):

#         print(a,b,c)

#     func1(x,y,z)

# func(1,2,3)

  4,2 在不确定内部参数定义个数就用动态参数来连接内部参数。


1

2

3

4

5

6

7

8

9

10

11

12

13

def func(*args):

    def func1(a,b,c,d):

        print(a,b,c,d)

    func1(*args)

func(1,2,3,4)

def func(*args,**kwargs):

    def func1(a,b,c,d=6):

        print(a,b,c,d)

    func1(*args,**kwargs)

func(1,2,3)

时间: 2024-12-07 18:13:02

有参参数的相关文章

Oracle的参数文件

1.参数文件 与Oracle数据库相关的参数文件有很多,但是最重要的是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库. 数据库的参数文件通常称为初始化文件(init file),或init.ora文件.这是因为历史上它的默认名就是init<ORACLE_SID>.ora.这所以称为"历史上"的默认名,原因是Oracle Database 9i Release 1 以来,对于存储数据库的参数设置,引入了一个很大改进的新方法:服务器参数文件(server param

Printf可变参数使用

参考文档: http://bbs.csdn.net/topics/70288067 Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源 本文的二个重点: 1. 可变参数实际上通过首个参数的地址来获取其它参数的地址,因为是顺序存储传过来的 1.      可变参数为了处理方便,所有的浮点型都是按照double型压栈. 因此,像printf采用的可变参数,它直接使用%f显示double型,不需要管float型. 关注printf的精度,需要先关

用python写一个专业的传参脚本

问:linux系统命令如ls,它有几十个参数,可带一个或多个参数,可不分先后,用起来是非常的专业.但是自己写的传参脚本,一般只传一个参数,如果传多个,也是固定的顺序,那么如何用python写出更专业的传参脚本呢? 答:使用python自带的getopt模块. 1.语法: import getopt getopt.getopt(args,shortopts, longopts=[]) #函数示例:getopt.getopt(sys.argv[1:],'u:p:P:h',["username=&qu

Mybatis方法入参处理

1,在单个入参的情况下,mybatis不做任何处理,#{参数名} 即可,甚至连参数名都可以不需要,因为只有一个参数,或者使用 Mybatis的内置参数 _parameter. 2,多个入参: 接口方法定义:public Employee getEmpByIdAndName(Integer id,String name); 取值:#{id},#{name} mybatis抛出异常:org.apache.ibatis.binding.BindingException:Paramter 'id' no

7.函数-参数

参数:     普通参数 默认参数 动态参数 普通参数: 形式参数 实际参数: 参数可以有n个,传入指定个数的参数 默认参数: subject : 如果调用时,该位置没有传入值,则使用默认参数值 默认参数必须放在参数列表的最后 动态参数:       def func(*args) 接收多个参数 内部自动构造元祖 序列,*避免内部构造元祖 元祖或者列表 下标 动态参数二:      def func(**dicts) 构造字典 动态参参数三:    def func(*args,**dicts)

集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)

小数据池 #int ==比较数值 is 比较内存地址 id 测试内存地址 #str 不能含有特俗字符 单个元素*数字,不能超过21 i1 = 'a'*20 i = 'a'*20 id一样 i1 = 'a'*21 i = 'a'*21 id不一样 编码 ascii   英文的数字,字母,特殊字符 字节 8位表示一个字节 字符 内容的最小组成单位 abc  a一个字符 中国 中  一个字符 unicode :万国码 期初 两个字节,表示一个字符2**16不够用 升级 四个字节,表示一个字符2**32

初识函数(定义,语法,返回值,参数)

1.什么是函数 函数是对代码块和功能的封装和定义 2.函数的语法和定义 使用def关键字来定义函数,函数的定义语法是 def 函数名(): 函数体 函数名的命名规则和变量一样 函数体就是函数被执行之后需要执行的代码 函数的调用: 写法:函数名(),这个时候函数的函数体会被执行 3.关于函数的返回值 return:返回 1.当程序没写过return,或者写了return但是没写值,不返回任何结果,如果非要接收,接收到的是None 2.当函数写了return 值,有一个返回值 3.当函数写了retu

函数:语法 定义 参数 返回值

函数 我们可以先去定义?个事情或者功能. 等到需要的时候直接去用就好了. 那么这里定义的东?就是一个函数. 函数是对功能或者动作的封装函数: 对代码块和功能的封装和定义 函数的语法和定义 def 函数名(): 函数体 调用: 函数名() 函数的调?: 使用函数名可以调用函数, 写法: 函数名(), 这个时候函数的函数体会被执? 函数的返回执行完函数之后. 我们可以使用return来返回结果 return : 返回 1. 当程序没写过return, 不返回任何结果. 如果你非要接收. 接受到的是N

JavaScript基础课程笔记

JS入门基础_热身课程 写JS的步骤 希望把某个元素移除的实现 获取元素 事件 如何添加事件 函数 测试 变量 JS的属性操作 HTML属性操作 属性读写操作的注意事项 []中括号的使用 条件判断 数组 for应用 cssText文本格式化与属性操作 按钮点击之后,不再重复功能的思路 this指向及this应用 自定义属性.索引值 自定义属性的读写操作 自定义属性应用 获取自身递增数字及匹配数组内容 添加索引值.匹配数组.HTML元素 数据类型.类型转换 数据类型 JS数据类型转换 JS方法:N