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):  #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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值