**## 面向对象 ##**
1 定义类
语法:
class ClassName:
实例:
class My: //声明一个My的类
name="李" //定义个name的属性
x=My() //实例化类
print("我的名字叫",x.name)//访问My类中的属性和方法
2 构造方法
def __init__(self):
self.data = []
- 无参构造方法
class My: //定义个方法体
def hello(self): //定义无参构造方法
return 'Hello python'
x = My() //将方法体实例
print(x.hello()) //输出构造方法
- 有参构造方法
class Complex://声明一个方法体
name=None
age=None
def __init__(self, s, i): //定义一个带参构造方法
self.name = s
self.age = i
x = Complex("李", 17)//将方法体实例
print("我姓",x.name,"今年",x.age,"岁了")// 输出结果:我姓 李 今年 17 岁了
3 继承
继承可以减少代码量
继承:一个子类可以继承多个父类
class M1://声明一个M1方法
name = None //声明一个name属性
class M2://声明一个M2方法
age = None//声明一个age属性
def sell(s)://定义构造方法
print("我是谁?")
class My(M1,M2): //用My方法继承M1和M2
def __init__(self,n,a)://定义构造方法
self.name=n
self.age=a
def shuo(s): //覆盖构造方法
print("我姓%s,今年%d岁了" %(s.name,s.age))//输出
M=My("李",17)//赋值
M.shuo()//执行输出
私有属性:
属性开头加 __就可使属性成为私有的属性,不能在类的外部被使用或直接访问。
__name="li"
类的专有方法:
- init : 构造函数,在生成对象时调用
- del : 析构函数,释放对象时使用
- repr : 打印,转换
- setitem : 按照索引赋值
- getitem: 按照索引获取值
- len: 获得长度
- cmp: 比较运算
- call: 函数调用
- add: 加运算
- sub: 减运算
- mul: 乘运算
- div: 除运算
- mod: 求余运算
- pow: 称方