四.类

1.类的定义

class Person :
	#这个init方法是固定的,相当于java的构造方法
	def __init__(self,name="默认名字",age = 8) :
		self.name = name
		self.age = age
	#实例方法的第一参数一般是self,其会绑定到调用方法的对象上,类似this关键字
	def say(self,msg)
		print(msg)
#创建对象
obj = Person()
print(obj.name)
print(obj.age)

2.操作类

#由于python是动态语言,因此可以动态的增删实例变量、方法,直接为新变量赋值或者del语句删除变量
#为obj对象增加一个sex的实例变量
obj.sex = "男"
#删除实例变量
del obj.sex
#定义一个函数
def info(self):
	print("新增加的info函数")

obj.info = info
#动态添加方法时不会将当前对象绑定到self参数上,需要自己绑定
p.info(p)

#如果需要自动绑定,需要type模块下的MethodType
from types import MethodType
p.info = MethodType(info,p)
p.info()#调用函数


#使用类调用函数:
class Man:
	def say():
		print("类调用")

Man.print()

#如果有self变量,如果使用类调用函数会报错,所以需要手动将某一个对象穿进去(不一定非得是对象,也可以是变量)




#定义类方法和静态方法

def T:
	#类方法的第一个参数建议是cls,绑定到当前类
	@classmethod
	def f(cls):
		print("类方法",cls)
	#静态方法的参数任意
	@staticmethod
	def s(p):
		print("静态方法",p)

3.定义子类

class Person():
	def __init__(self,name,age):
		self.name = name
		self.age = age

	def say(self):
		print(self)

class Man(Person):
	def __init__(self,name,age):
		#调用父类的构造器
		super().__init__(name,age)#注意,这里没有self

	def jump():
		print(self.name,"is jumping")
	
	#重写父类中的方法
	def say(self):
		print("重写父类的方法")

	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值