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

猜你喜欢

转载自blog.csdn.net/Zachary_H/article/details/106425453
今日推荐