#1.
#A:python的def语句实际上是一个可执行语句,当他运行的时候,它创建一个新的函数对象并将其赋值给一个变量名
#B:因为def语句是一个语句,所以一个def可以出现在任一语句可以出现的地方,比如说嵌套在其他的语句中
#C:函数除了调用以外,还允许任意的属性附加到记录信息,以供使用
def FunA(Value):
if Value:
def FunB() : return 10
else:
def FunB() : return 20
return 10 + FunB()
b0 = "aaa" in dir(FunA) #b0 = False
FunA.aaa = "1"
b1 = "aaa" in dir(FunA) #b1 = True
value0 = FunA(True) #value = 20
value1 = FunA(False) #value = 30
value2 = FunA.aaa #value2 = ‘1‘
#2.
#A:多态
def Fun(value0, value1) : return value0 * value1
str0 = Fun(4, ‘s‘) #str0 = ‘ssss‘
value0 = Fun(1, 4) #value0 = 4
try:
Fun(‘s‘, ‘z‘)
except:
pass #执行至此 当参数类型不匹配的时候,python会自动抛出异常
#如上,Fun函数表达式中的value0 * value1的意义完全取决于其本身的类型,这种依赖类型的行为成为多态,这也是python作为动态类型语言和静态类型语言(c++、java)至关重要的区别
#在python中,代码不应该关心特定的数据类型,大体上,python为对象编写接口,而不是数据类型
原文:http://www.cnblogs.com/szn409/p/6641519.html