一、函数定义方法
1、函数定义
如图所示: def来定义,参数不需要指定类型,没有return,函数默认返回None
注:函数对象和调用函数
- fn是函数对象 fn()调用函数
- print是函数对象 print()调用函数
2、函数传参
- 位置参数
位置参数就是将对应位置的实参复制给对应位置的形参
第一个实参赋值给第一个形参,第二个实参赋值给第二个形参 。。。
fn(1 , 2 , 3) - 关键字参数
关键字参数,可以不按照形参定义的顺序去传递,而直接根据参数名去传递参数
fn(b=1 , c=2 , a=3)
print(‘hello’ , end=’’)
位置参数和关键字参数可以混合使用
混合使用关键字和位置参数时,必须将位置参数写到前面
fn(1,c=30)
以防被修改,建议传浅复制的对象:
def fn4(a):
# 在函数中对形参进行重新赋值,不会影响其他的变量
# a = 20
# a是一个列表,尝试修改列表中的元素
# 如果形参执行的是一个对象,当我们通过形参去修改对象时
# 会影响到所有指向该对象的变量
a[0] = 30
print('a =',a,id(a))
c = 10
c = [1,2,3]
d = [4,5,6]
fn4(c)
print('c =',c,id(c))
fn4(d.copy())
print('d =',d,id(d))
fn4(d[:])
print('d =',d,id(d))
运行结果:
3、函数传不定长参数
二、类使用(后序再进行补充。。。。)
Python是面向对象的语言
- init()函数是构造函数,和C++一样的构造函数;