Python类知识

在这里插入图片描述


类也是一个对象

构造方法和析构方法

def __init__(self [, 形参列表]):		#构造方法
	语句...

__del__(self):						#析构方法
#不建议在析构方法中进行操作,因为析构调用的时间
#即对象销毁的时间不确定

实例方法

def name(self,...)		#传self,对实例属性和方法进行操作

类的方法

class Dog:
	local = "China"
	def __init__(self,a):
		self.age = a
	@classmethod			#表明是类方法
	def show(cls):			#class->简写cls
		print(cls.local)	#使用类变量cls.local
d=Dog(1)
Dog.show()				#类调用类方法
d.show()				#实例调用类方法

类变量和实例变量

class Dog:
	age = 1			#类变量
	def __init__(self, name):
			self.name_=name		#实例变量

通过实例访问变量时,现在实例变量中查找,再去类变量查找
实例对类变量进行操作时,操作的实际上是对类变量深拷贝的变量
实例变量与类变量若名称相同时,实例变量将屏蔽掉类变量(实际操作发现:该屏蔽仅是在实例访问变量时屏蔽,通过类名依旧可以访问类变量,说明类变量与实例变量相同名称时依旧独立存在)

静态方法

特点是不需要传self、cls

class Dog:
	local = "China"
	def __init__(self,a):
		self.age = a
	@staticmethod			#表明静态方法
	def add(a,b):			#不需要传self or cls
		return a+b	
	@classmethod
	def show(cls):
		print(cls.add(1,1),cls.local)
							#类方法调用静态方法
d=Dog(1)
print(d.add(1,1))			#实例调用静态方法
Dog.show()

内置属性

__class__、__dict__、__doc__、__module__

print(d.__dict__)			#d为类的一个实例
#以字典形式把实例的所有属性打印出来

类变量

类的变量用类和实例都能调用但是实际上是实例对类变量深拷贝

class Dog:
	local = "China"
	def __init__(self,a):
		self.age = a
d=Dog(1)
print("d.local= ",d.local,"	","Dog.local= ",Dog.local)
#China		China
d.local="earth"
print("d.local= ",d.local,"	","Dog.local= ",Dog.local)
#earth		China

对象的属性管理

getattr(obj,name [,default])		#获取属性
setattr(obj,name,value)			#添加一个属性
hasattr(obj,name)				#判断有没有这个属性
delattr(obj,name)				#删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值