1、函数的使用
# 语法:函数以 def 为标记,
def a(b):
b = 2
return b
# 可以用 *params 传递多个实参
In [94]: def a(b):
...: b = 2
...: return b
...:
In [95]: a(c)
Out[95]: 2
In [96]: c
Out[96]: 3
In [97]: def b(*c):
...: for i in c:
...: print(i)
...:
In [98]: b(2)
2
In [99]: b(23)
23
In [100]: b([2, 34, 56])
[2, 34, 56]
In [101]: b(2, 3, 4, 5, 7)
2
3
4
5
7
# 实参若是列表, 则在函数中对列表的修改永久有效, 若不想让函数修改列表, 可以利用切片的方式传给函数一个副本
In [102]: def a(b):
...: b[0] = 1
...: return b
...:
In [103]: c = [2, 3, 4]
In [104]: a(c)
Out[104]: [1, 3, 4]
In [105]: c
Out[105]: [1, 3, 4]
In [108]: d = [2, 3, 4]
In [109]: a(d[:])
Out[109]: [1, 3, 4]
In [110]: d
Out[110]: [2, 3, 4]
2、类的创建及使用
类的创建
In [131]: class A(): # 类的首字母记得大写
...: '''测试类''' # 这里编写文档字符串, 对这个类的功能作描述
...:
...: # 我们创建 A 的实例时,Python 将调用 A 的 __init__ 方法
...: # self 不能少
...: def __init__(self, a, b, c):
...: '''初始化属性'''
...: print('__init__')
...: self.a = a
...: self.b = b
...: self.c = c
...: self.d = 0 # 默认属性
...:
...: # 记得加上 self , 不然会报错 takes 0 positional arguments but 1 was given
...: def bFunction(self):
...: print('b function')
...:
...: def cFunction(self):
...: print('c function')
类的使用
In [132]: a = A(1, 2, 3)
__init__
In [133]: a.a
Out[133]: 1
In [134]: a.b
Out[134]: 2
In [135]: a.c
Out[135]: 3
In [136]: a.d
Out[136]: 0
In [137]: a.bFunction()
b function
In [138]: a.cFunction()
c function
# 修改属性的值
In [139]: a.a = 10
In [140]: a.a
Out[140]: 10
3、继承
In [131]: class A(): # 类的首字母记得大写
...: '''测试类''' # 这里编写文档字符串, 对这个类的功能作描述
...:
...: # 我们创建 A 的实例时,Python 将调用 A 的 __init__ 方法
...: # self 不能少
...: def __init__(self, a, b, c):
...: '''初始化属性'''
...: print('__init__')
...: self.a = a
...: self.b = b
...: self.c = c
...: self.d = 0 # 默认属性
...:
...: # 记得加上 self , 不然会报错 takes 0 positional arguments but 1 was given
...: def bFunction(self):
...: print('b function')
...:
...: def cFunction(self):
...: print('c function')
...:
# 继承的方式
In [159]: class B(A):
# g 有默认值, 可以不传这个参数值
...: def __init__(self, a, b, c, d, e, f, g = 778):
...: print('B __init__')
# 初始化父类的属性
...: super().__init__(a, b, c)
...: self.d = 10086
...: self.e = e
...: self.f = f
...: self.g = g
...: self.h = 100
...: # 子类重写父类的方法
...: def cFunction(self):
...: print('B c_function')
...:
...: def dFunction(self):
...: print('B d_function')
...:
...: def eFunction(self):
...: print('B e_function')
# 先初始化子类的 __init__ 方法,再调用父类的 __init__ 方法
In [160]: b = B(1, 2, 3, 4, 5, 6, 7)
B __init__
__init__
# 子类有重写父类的方法则调用父类的方法
In [163]: b.cFunction()
B c_function
In [164]: b.dFunction()
B d_function
4、文件
http://blog.csdn.net/ztf312/article/details/47259805