关于python2在python3中的改动:
https://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5MDEyMDk4Mw==&appmsgid=10021103&itemidx=1&sign=398f5144682fb764b887679757a51245
第十三章 函数
(把程序分解成较小的部分,有三种方法:函数、对象、模块)
def关键字:创建或定义函数
创建函数:
def printMyAddress(): print("Warren Sande") print("123 Main Street") print("Ottawa,Ontario,Canada") print("K2M 2E9")printMyAddress() #调用函数
向函数传递参数:
def printMyAddress(myname): print(myname) print("123 Main Street") print("Ottawa,Ontario,Canada") print("K2M 2E9")printMyAddress('Carter Sande')
传递多个参数:
def printMyAddress(myname,housenum): print(myname) print(housenum) print("Ottawa,Ontario,Canada") print("K2M 2E9")printMyAddress('Carter Sande','245')
函数返回值:return
这部分和C里的函数都差不多
全局变量和局部变量:
在函数类使用全局变量时,如果修改了全局变量的值,会在函数内创建一个同名局部变量,而全局变量内容不变
这是为了防止函数无意的改变全局变量
如果确实要在函数内改变全局变量的值,需要用到关键字global,来强制为全局变量
def calculateTax(price,tax_rate): global my_price
若my_price存在,则在函数内修改该值,若不存在,则创建该全局变量
第十四章:对象
对象 = 属性+方法
object.attribute
object.method()
创建对象:
第一步:定义属性和 方法(类)
第二步:使用类来建立一个真正的对象,这个对象称为这个类的一个实例
class ball: def bounce(self): if self.direction == 'down': self.direction = 'up'
这是一个球的类定义,其中只有方法bounce()。没有属性对不对?属性不属于类,它们属于各个实例,每个实例可以有不同的属性
创建一个对象实例:
class ball: def bounce(self): if self.direction == 'down': self.direction = 'up'myball = ball()myball.direction = 'down'myball.color = 'red'myball.size = 'small'print(myball.direction )print(myball.color)print(myball.size)myball.bounce()print(myball.direction)
初始化对象:可以通过__inin__()方法来设置属性
class ball: def __init__(self,color,size,direction): self.color = color self.size = size self.direction = direction def bounce(self): if self.direction == 'down': self.direction = 'up'myball = ball('red','samll','down')print(myball.direction )print(myball.color)print(myball.size)myball.bounce()print(myball.direction)
为什么要有 self 呢?
一个类可以创建多个对象实例如:
myball = ball('red','samll','down')yourball = ball('aaa','asdf','ad')hisball = ball('***','****','***')
方法必须知道是哪个实例调用了它,这时self参数就会告诉你。这称为实例引用