关于类方法和静态方法

class Person(object):
	#私有类属性
	__type = "黄种人"

	def __init__(self):
		#实例属性,都是在__init__方法里!
		self.name = "小红"

	#定义一个实例方法(接收self的就是实例方法,因为self就表示实例本身!)
	def show(self):
		print("我是实例方法")
		
	#用关键字classmethod修饰的方法就是类方法
	@classmethod
	def show_msg(cls):
		print(cls)
		print("我是类方法!")
		print(cls.__type)
		
		
	#类方法的使用场景(在类的方法里面可以获取或修改类属性!)
	@classmethod
	#修改类属性
	def set_type(cls,type):
		cls.__type = type
	#获取类属性
	@classmethod
	def get_type(cls):
		return cls.__type	
		
	
	#用关键字staticmethod修饰的方法就是静态方法
	#所谓静态,就是和当前的类和实例没有任何关系
	#一般情况静态方法会使用到当前类的逻辑,节省内存
	@staticmethod
	def show_static():#不传任何参数
		print("我是静态方法")
		
		
		
#创建一个实例,利用实例调用(实例方法,类方法,静态方法)
p =Person()
p.show()
p.show_msg()
p.show_static()
	

print()	
#使用类名调用对象方法(需要传入对象)
Person.show(p)
#使用类名调用类方法
Person.show_msg()
#使用类名调用静态方法
Person.show_static()



#扩展
#使用实例调用类方法修改类属性值
p.set_type("黑种人")  #这里的p是Person类的一个实例,所以就代表Person类了
res = p.get_type()
#查看类属性修改成功没有
print(res)
	

输出结果:
在这里插入图片描述
最后用实例调用类方法,成功的把类的私有属性修改为“黑种人”,并打印。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值