简介
- 前置知识:基础的面向对象的概念
本文主要简述若何在 P y t h o n 3 Python3 Python3 中使用面向对象的相关内容 - 后文把 a t t r i b u t e attribute attribute 翻译成字段,把 p r o p e r t y property property 翻译成属性,这是两种不同的内容
简单类使用
- 创建一个类
class MyClass:
val = 10 # 定义一个普通子段
__val2 = 10 # 定义了一个私有子段
def func(self): # 定义一个方法
return self.val # 返回 val 的值
def __func2(self): # 定义了一个私有方法
return self.val2
# 实例化类
c = MyClass()
# 访问类的字段,调用类的方法
print(c.val)
print(c.func())
注意,类的方法的第一个参数一定要给定 self
,名字是可以任意的,但是规范一般命名为 self
这个代表类的实例,代表当前对象的地址,而非是类。
- 类有一个特殊的构造方法
__init()__
class MyClass:
def __init__(self): # 一个简单的构造函数
self.val = 10
def func(self):
return self.val
当然,构造函数也可以带参数,和别的语言一样。
class MyClass:
def __init__(self,arg1,arg2):
self.val1 = arg1
self.val2 = arg2
继承
- 派生类的定义如下:
class DerivedClassName(BaseClassName):
def __init__(self):
BaseClassName.__init__(self) # 调用父类的构造函数
def speak(self): # 覆盖父类方法
pass
多继承
- P y t h o n Python Python 支持多继承,定义如下:
class DerivedClassName(Base1,Base2,Base3):
pass
运算符重载
- 我们可以对类的专有方法进行重载
比如如下的专有方法:
__add__
__sub__
__mul__
__truediv__
__mod__
__pow__
比如可以写成:
def __add__(self,other):
return self.a + other.a