第十六章 函数基础

#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为对象编写接口,而不是数据类型

  

原文地址:https://www.cnblogs.com/szn409/p/6641519.html