面向对象
继承
单继承
class A:
def f(self):
print('A.f()')
class B(A):
def f(self):
print('B.f()')
class C(B):
pass
c = C()
c.f()
# 输出
B.f()
多继承
class A:
def f(self):
print('A.f()')
class B:
def f(self):
print('B.f()')
class C(A, B):
pass
c = C()
c.f()
私有
#!/usr/bin/python3
class JustCounter:
__secretCount = 0 # 私有变量
publicCount = 0 # 公开变量
def count(self):
self.__secretCount += 1
self.publicCount += 1
print (self.__secretCount)
counter = JustCounter()
counter.count()
counter.count()
print (counter.publicCount)
print (counter.__secretCount) # 报错,实例不能访问私有变量
#!/usr/bin/python3
class Site:
def __init__(self, name, url):
self.name = name # public
self.__url = url # private
def who(self):
print('name : ', self.name)
print('url : ', self.__url)
def __foo(self): # 私有方法
print('这是私有方法')
def foo(self): # 公共方法
print('这是公共方法')
self.__foo()
x = Site('菜鸟教程', 'www.runoob.com')
x.who() # 正常输出
x.foo() # 正常输出
x.__foo() # 报错
类
类的专有方法
__init__ :
构造函数,在生成对象时调用__del__ :
析构函数,释放对象时使用__repr__ :
打印,转换__setitem__ :
按照索引赋值__getitem__:
按照索引获取值__len__:
获得长度__cmp__:
比较运算__call__:
函数调用__add__:
加运算__sub__:
减运算__mul__:
乘运算__div__:
除运算__mod__:
求余运算__pow__:
乘方运算符重载
#!/usr/bin/python3
class Vector:
def __init__(self, a, b):
self.a = a
self.b = b
def __str__(self):
return 'Vector (%d, %d)' % (self.a, self.b)
def __add__(self,other):
return Vector(self.a + other.a, self.b + other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)
最后更新于
这有帮助吗?