在Python的函数中,是可以为形参附上默认值的,这样当调用函数而没有传给那个形参值时,形参的值即为默认值。
#默认参数
def default_param(val,val1=10):
print(val);
print(val1);
default_param(1);
还可以不定参,这样就可以向函数传送0~N个参数。但是函数不允许有两个或两个以上的不定参。
#可变参数列表
def change_param(*value):
sum = 0;
if not value:
return "没有参数";
else:
for i in value:
sum += int(i);
return sum;
print(change_param());
print(change_param(2,3,4))
对于异常,Python也可以捕获。用except进行捕获,虽是如此,但与Java经典的try-catch-finally相比,还是明显弱了许多啊!
#Python中的异常处理
def exp_func(i,j):
try:
print(i/j);
except:
print("异常:分母为0");
exp_func(5,0);
接下来就是面向对象的知识,没有新意的,用class来标明对象,括号中的表示Animal类继承至object。此object应该是Python中一切类的最基础父类吧,同Java中的java.lang.Object差不多吧。
class Animal(object):
#构造函数
def __init__(self,name):
self.name = name;
#方法
def descript_self(self):
print("This is a function.The name is "+self.name+".");
#供打印的方法,类似于java中的toString()方法
def __str__(self):
return "This is "+self.name+".";
#pass表示不对从object继承来的特性做任何修改
pass;
#初始化一个类的实例
cat = Animal("cat");
#调用类中的方法
cat.descript_self();
#打印对象
print(cat);
构造函数是__init__,仿佛PHP中是__construct吧,唉,感觉没有Java直接用类名作为构造函数名好用。
然后就是多态(其实就是运行时绑定,重载重写啥的),子类继承父类,随手写一个,熟悉一下:
#Dog类,继承至Animal类
class Dog(Animal):
#子类中拥有的父类没有的方法
def func(self):
print("This is func.");
#构造函数
def __init__(self):
#调用父类的构造函数
Animal.__init__(self,"Dog");
#重写父类的方法
def descicript_self(self):
print("This is a override function.");
dog = Dog();
dog.descript_self();
dog.func();
顺便提一句,Python是允许多重继承的。