方法重写
如果父类方法的功能不能满足需求,可以在子类重写父类的方法:
class Dad:
def method(self):
print("我是Dad")
#继承
class son(Dad):
#方法重写
def method(self):
print("我是son")
MethodType
MethodType可以把外部函数绑定到类或类的实例中
from types import MethodType
class person(object):
pass
#外部方法
def say(self):
print("我是一个人")
#1.把方法绑定到类的实例中
p1 = person()
p1.speak = MethodType(say,p1)
p1.speak()
#2.把方法绑定到类中
person.speak = MethodType(say,person)
p2 = person()
p2.speak()
property
property() 函数的作用是在新式类中返回属性值。
class property([fget[, fset[, fdel[, doc]]]])
-
fget — 获取属性值的函数
-
fset — 设置属性值的函数
-
fdel — 删除属性值函数
-
doc — 属性描述信息
class C(object):
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
如果 c 是 C 的实例化, c.x 将触发 getter,c.x = value 将触发 setter , del c.x 触发 deleter。
property 的 getter,setter 和 deleter 方法同样可以用作装饰器:
运算符重载
class Person(object):
def __init__(self,num):
self.num = num
def __add__(self,other):
return Person(self.num + other.num)
def __str__(self):
return "num = " + str(self.num)
p1 = Person(1)
p2 = Person(2)
print(p1+p2)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99500.html