Python面向对象之静态方法、类方法、运算符重载
1.静态方法、类方法
(1)示例
class per(object):
ver=1.1
def __init__(self, myname, myage):
self.name=myname
self.age=myage
def run(self):
print("I can run")
@staticmethod
def test():
print("我是静态方法")
@classmethod
def mytest(cls):
print("我是类方法")
cls.test()
zbc=per("xiaoniao", 22)
per.test()
zbc.test()
per.mytest()
zbc.mytest()
我是静态方法
我是静态方法
我是类方法
我是静态方法
我是类方法
我是静态方法
(2)静态方法
- 静态方法可以被类和类的实例调用
- 静态方法内部不可以调用类的实例方法和实例属性
- 格式
@staticmethod
def 函数名():
函数体
(3)类方法
@classmethod
def 函数名(cls):
函数体
2.运算符重载
(1)常用运算符表
比较操作符 | |
---|
__ lt __(self, other) | 定义小于号的行为:x < y 调用:x.__ lt __(y) |
__ le __(self, other) | 定义小于等于号的行为:x <= y 调用:x.__ le __(y) |
__ eq __(self, other) | 定义等于号的行为:x == y 调用:x.__ eq __(y) |
__ ne __(self, other) | 定义不等于号的行为:x != y 调用:x.__ ne __(y) |
__ gt __(self, other) | 定义大于号的行为:x > y 调用:x.__ gt __(y) |
__ ge __(self, other) | 定义大于等于号的行为:x >= y 调用:x.__ ge __(y) |
算术运算符 | |
---|
__ add __(self, other) | 定义加法的行为:+ |
__ sub __(self, other) | 定义减法的行为:- |
__ mul __(self, other) | 定义乘法的行为:* |
__ truediv __(self, other) | 定义真除法的行为:/ |
__ mod __(self, other) | 定义取模(求余)的行为:% |
__ pow __(self, other) | 定义幂运算的行为:** |
(2)示例
class per(object):
def __init__(self, myname, myage):
self.name=myname
self.age=myage
def __add__(self, other):
print("我是特殊方法实现加法重载")
return self.age+other.age
def __str__(self):
return "我是per类的对象"
def __len__(self):
return 100
zbc=per("xiaoniao", 22)
hls=per("futejia", 35)
print(zbc+hls)
print(hls)
print(len(hls))
我是特殊方法实现加法重载
57
我是per类的对象
100