编程的方法论:
面向过程:把一个大问题分解成若干小问题去解决
def cal(x):
res=2*x
res+=1
return res
函数式编程:函数式=编程语言定义的函数+数学意义的函数,python不是完全意义上的函数式编程,了解即可
def cal(x):
return 2*x+1
面向对象
注意:一定要区别这两个
def calc(x):
return(x+1)
print(calc) #输出的是calc的内存地址
print(calc(10)) #加个小括号即是运行这个函数,内存地址里存的值
#如果没有print,直接calc(10),则没有任何输出
#输出
<function calc at 0x014AD1D8>
11
注意:一定要注意 print(x+1)和 return(x+1)的区别
def calc(x):
print(x+1)
return x+1
calc(10) #只输出print,不能输出return,没有打印,所以没有任何显示
print(calc(10))
#输出
11
11
11
高阶函数:
1、把函数当做参数传递给另一个
2、返回值中包括函数
def foo(n):
print(n)
def bar(name):
print('my name is '+ name)
foo(bar) # 地址
foo(bar('alex'))#函数名加()代表执行这个函数,把函数当做参数传递给另一个函数,bar函数没有返回值,则返回的是none
#输出
<function bar at 0x0380D1D8>
my name is alex
None
返回值可以是函数
def test1():
print('from test1')
def test2():
print('from handle')
return test1()
# return test1 注意区别,加括号代表运行函数,返回的是运行结果。不加括号代表返回的是地址。
test2()
#输出
from handle
from test1
def bar():
print('from bar')
def foo():
print('from foo ')
return bar #返回值中包括函数
n=foo()
n() #返回值是函数,可以运行
def handle():
print('from handle')
return handle
h=handle() #返回值可以是函数,甚至可以是自己
h()
#输出
from foo
from bar
from handle
from handle