学习python的第四天

学习Python的第四天
一.类和对象:(对象是累的实例化)
1.定义类(class)

class lei(object):
	def __init__(self):#在创建对象时进行初始化
		self.a=1000
	def study(self):
		print("正在学习")
if __name__=="main":
	lei_=lei()  #相当于调用__init__()
	lei_.study()

"""
属性和方法的访问只有俩种,公开的和私有的
如果是私有的,定义时加俩个下划线
加单下划线是约定为私有的
"""
class tst(object):
	def __init__(self):
		self.__foo=100
	def __bre(self):
	print(self.__foo)
	print('__bar')
if ___name__=="__main__":
	ts=tst()
	ts.__bre()
	#私有不可调用,如果想调用可以用ts._tst__bre()或用访问器调用

在这里插入代码片

面向对象的支柱为:封装,继承,多态
练习:定义一个类描述数字时钟

class clock(object):
	def __init__(self,shi=0,fen=0,miao=0):
		self._shi=shi
		self._fen=fen 
		self._miao=miao
	def run(self):
		self._miao +=1
		if self._miao==60:
			self.miao=0
			self._fen +=1
			if self._fen==60:
				self._fen=0
				self._shi +=1
				if self._shi==24:
					self._shi=0
	def show(self):
		return '%02d:%02d:%02d' % \'(self._shi,self._fen,self._miao)
		
def main():
	cl=clock(23,59,58)
	while True:
		print(cl.show())
		sleep(1)
		cl.run()

if __name__=="__main__":
	main()
	
在这里插入代码片

二.面向对象进阶:

@property 装饰器
getter(访问器) setter(修改器):
class person(object):
	#__slots__=('__num','__sum')
	#绑定__num和__sum的属性
	def __init__(self,num,sum):
		self.__num=num
		self.__sum=sum
	@property
	def num(self):
		return self.__num
	@property
	def sum(self):
		return self.__sum
	@sum.setter
	def sum(self,sum):
		self.__sum=sum
	def play(self):
        if self._age <= 16:
            print('%s正在玩飞行棋.' % self._num)
        else:
            print('%s正在玩斗地主.' % self._num)
          
 def main():
    person = Person('王大锤', 12)
    person.play()
    person.sum = 22
    person.play()
if __name__ == '__main__':
    main()
    
在这里插入代码片

静态方法和类方法
1.静态方法和类方法都是通过各类发消息来调用
2.也可以通过给类发消息来调用对象方法弹药传入接收消息的对象作为参数
类之间的关系:
类和类之间的关系有三种:is-a(继承或泛化)、has-a(关联)和use-a(依赖)关系
继承和多态:
class 类名(object)
新建的这个类继承了object类
子类在继承了父类的方法后,可以对父类已有的方法给出新的实现版本,这个动作称之为方法重写(override

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值