Python 类方法,对象方法,对象属性、类属性

 

class PythonClass():
	""" 挂件的说明文档 """
	def __init__(self):
        # 成员属性(成员变量)
	    self.name = '这是 成员变量 Name'
	
	# 类属性(类变量)
        # 类变量可被此类的所有对象访问 、修改
        # 只能 使用类 修改 类变量的值
        # 用做数据共享
	name = '这是 类变量 Name'
	age  = '这是 类变量 age'
 
	# 绑定类方法(对象方法、普通方法)
	def pL(self):
		print('-1-普通方法 访问 成员属性(成员变量):{}'.format(self.name)) 
		print('-2-普通方法 访问 类属性:{}'.format(__class__.name)) 
		print('-3-普通方法 访问 不存在的成员属性,但是 存在同名的 类属性:{} 结果可知,此时就会访问 类属性'.format(self.age))
		print('--- start ----')
		self.name = '修改后的 成员变量'
		print('-4-普通方法 修改 成员属性:{}'.format(self.name))
		print('--- end ----')
		__class__.name = '修改后的 类变量'
		print('-5-普通方法 修改 类属性:{}'.format(__class__.name))
	# 注 意 :
	# 绑定方法(类函数? 我不太清楚这个改怎么称呼,这个在类中不常见, 类中一般是三中方法,对象方法,绑定类方法@classmethod,静态方法@staticmethod)
	def sL():
		print('-6-类函数 访问 类变量:{}'.format(__class__.name))
		print('--- start ----')
		try:
			print('-7-类函数 访问 成员变量:{}'.format(self.name)) # 会报错
		except Exception as e:
			print('-8-类函数 不可访问 对象的 成员变量')
		print('--- end ----')
 
 
#测试开始:
print('====== 对象和类 调用 普通方法、类函数  测试开始  ======')
		
# 类的实例化对象
l = PythonClass()
 
# 对象 调用 普通方法
l.pL()
# 对象 调用 类函数
try:
	l.sL()
except Exception as e:
	print('-9-对象 不能 访问 类函数(绑定类方法) ')
 
# 类 调用类函数
PythonClass.sL()
 
# 类 调用普通方法
try:
	PythonClass.pL()
except Exception as e:
	print('-10-类 不能调用 普通方法 报错self未定义 除非是把类的对象当做实参传进去(还不如直接用对象调用)')
 
print()
print()
 
#测试开始:
print('======  对象和类 调用 成员变量和类变量 测试开始  ======')
 
print('1.对象 访问 成员变量 : {}'.format(l.name))
print('2.对象 访问 类变量 : {}'.format(l.__class__.name))
print('3.对象 访问 不存在的 成员变量 ,但是 存在同名 类变量 : {}'.format(l.age))
print('--- start ----')
try:
	l.__class__.name = '对象 修改后的 新 类变量'
	print('4.对象 修改 类变量 : {}'.format(l.__class__.name))
except Exception as e:
	print('5.对象 不能 修改 类变量')
print('--- end ----')
 
print('--- start ----')
l.name = '对象 修改后的 新 对象变量'
print('6.对象 修改 对象变量 : {}'.format(l.name))
print('--- end ----')
 
print('7.类 不能 访问 对象的成员变量')
 
print('--- start ----')
PythonClass.age = '类 修改后的 新  类变量 age'
print('9.类 修改 类变量 : {}'.format(PythonClass.age))

测试结果:

总结

  • 对象 可以调用普通方法
  • 普通方法可以修改 类和对象 的变量
  • 对象 不能调用类函数
  • 类 不能调用普通方法(非要调用,就传对象)
  • 类 不能访问对象的变量
  • 类 可以修改类变量
  • 类函数可以访问、修改类变量
  • 类函数不可访问 对象的 成员变量
  • 关于类函数的相关测试,各位先忽略,因为在别人的代码中,类里好像没有这个函数。如果有人知道这个到底叫什么,希望留言告知,谢谢
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值