代码层次
Python是一门脚本语言,新建一个 .py 文件,写点代码,就可以跑起来了,无论放哪都可以。比如 where.py 文件:
print("Where am I?")
那么问题来了,这是写在哪里的呢?为了一目了然,我们用“导游图”的视角来看看代码层次:

红色箭头指出了,是写在模块中的,原来一个 .py 文件就是一个模块。模块中可以写函数和类,模块可以放在包中。
函数
Python中最出名的函数一定是 print() 了,毕竟全世界都在用它say Hello World。Python函数其实和数学中的函数很像,比如 y = f(x) 。有函数名字、输入和输出。Python的函数结构如下:

函数通过 def 关键字来定义:
def 函数名(参数列表):
函数体
参数列表有就有,无则无,多个参数用逗号分隔。例如:
def hello() :
print("Hello World!")
hello() # 调用函数
def max(a, b):
if a > b:
return a
else:
return b
a = 4
b = 5
print(max(a, b))
调用函数,不需要再加 def ,直接 函数名(参数列表) 即可。参数既可以是变量,也可以是其他函数,只要能一一对应。 return 关键字用来返回值。return不是必需的,如果没有,那么函数会把内部代码全部都执行完再退出,如果有,函数会在return语句立刻退出,同时返回return语句的值,例如:
# 可写函数说明
def sum( arg1, arg2 ):
# 返回2个参数的和."
total = arg1 + arg2
print ("函数内 : ", total)
return total
print("这里不会执行!")
# 调用sum函数
total = sum( 10, 20 )
print ("函数外 : ", total)
类
为什么还要写类,函数它不香么?这个问题有点大,我只能简单解释一下,那就是因为,类是包括了函数的,如果有一天你发现函数不够用了,那么可以用类试试,哈哈哈。
类是面向对象编程中的概念,把对象*共中**性的东西抽离出来而成。
类中的函数叫做方法,除了方法还有属性(也就是变量),我写个不严谨的公式:类 = 属性 + 方法,例如:
class People:
#定义属性
name = ''
age = 0
#定义方法
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name, self.age))
类的使用跟函数一样,需要调用,例如:
ongfanger = People() # 这叫做实例化对象
dongfanger.speak() # 调用方法
类的一大好处是,可以通过继承来进一步复用代码。
模块
模块中可以包含模块级代码、函数和类。模块与模块之间是不能直接调用的,必须使用 import 关键字来导入。导入时,模块级代码一定会被执行,如果我们不想让某些代码执行,那么可以添加一句 if __name__ == '__main__': ,例如
if __name__ == '__main__':
print('这里的代码,仅在该模块自身运行时执行')
else:
print('模块被导入时执行')
函数和类需要调用才会运行,所以不存在这个问题。