定义函数
在Js中声明函数是通过function
关键字,在python中,是通过def
关键字,def
的英文全称为define,在函数的块级中,Js是通过{}
符合进行打包,而python则是使用:
进行声明。
如:
def move(x,y):
if x>0 && y>0:
return 100;
可变参数
在Python中有一个特殊概念,叫可变参数。比起普通参数,可变参数的前缀多了一个*
符号。比如:def move( *x );这样这个函数在参数传递中就不存在参数个数的限制问题,既可以传递超过一个以上的参数,也可以不传参数。
name = "wangyu";
age = 30
sum = 20000
sch = "NO1"
def show(name,age,*others): //比如我们想要声明一个构造函数,但是我们不知道后续等添加多少属性。就使用可变参数。
print(name,age,others);//这个other是一个tuple (xxx,xxx)形式;
show(name,age,other,sch)
**kw 关键字参数
这个概念是JS里完全没有的,但是在python编程中作用非常大。
我们可以分成几种情况来看:
1. 只传必选参数;
def Person(name,age,**kw):
print(name,age,kw);
Person("zw",30);
//kw输出结果为"zw",30
- 传递多个属性
def Person(name,age,**kw):
print(name,age,kw);
Person("zw",30,start="anhui",end="shanghai");
//kw输出结果为dict {start:"anhui",end:"shanghai"}
当然我们也可以自定义**kw
,当我们希望传递一个dict给到函数时,我们可以将关键字自选参数写成**自定义参数名
。而函数内部kw
得到的就是自定义参数dict
的拷贝
。
命名关键字参数
命名关键字参数和关键字kw参数的区别在于*
只有一个。比如之接受city,friend这两个关键字参数,
def Person(name,*,city,friend):
print(name,city,friend);
命名关键字参数的特点
在于必须传入参数名。