python学习笔记之对象(八)

一 对象

oo:Object Oriented面向对象

对象的特性

  1. 封装 举例list中的append和sort方法,封装好之后直接调用
  2. 继承
  3. 多态 不同对象对同一行为的抽象,动物的跑为例

2.1 继承示例

>>> class MyList(list):
	pass
>>> list2 = MyList()
>>> list2.append(2)
>>> list2.append(3)
>>> list2.append(5)
>>> list2
[2, 3, 5]
>>> list2.sort(reverse=True)
>>> list2
[5, 3, 2]

3.1 多态示例

>>> class Tortoise:
	def run(self):
		print('run slow')

		
>>> class Dog:
	def run(self):
		print('run quick')

		
>>> d = Dog()
>>> t = Tortoise()
>>> d.run
<bound method Dog.run of <__main__.Dog object at 0x000001BCF0DA3A88>>
>>> d.run()
run quick
>>> t.run()
run slow

类的示例

#python中的类名约定以大写字母开头
class Turtle:
    #属性
    color = 'green'
    weight = 10
    leg = 4
    mouth = '小嘴'

    #方法
    def climb(self):
    	print('我正努力的想上爬...')

    def run(self):
        print('我正在飞快的向前跑...')

    def bite(self):
    	print('咬死你咬死你')


if __name__ == '__main__':
	tt = Turtle()
	tt.climb()
	tt.bite()

二 对象中的self

>>> class Ball:
	def setName(self,name):
		self.name = name
	def kick(self):
		print('我叫%s,该死的,谁踢我。。。' % self.name)

		
>>> a = Ball()
>>> a.setName('球A')
>>> a.kick()
我叫球A,该死的,谁踢我。。。
>>> b= Ball()
>>> b.setName('球B')
>>> b.kick()
我叫球B,该死的,谁踢我。。。

三 类的继承

3.1 写法

class DrivedClass(BasedClass)
BasedClass 为基类、超类或父类

继承示例如下:

>>> class Parent:
	def call(self):
		print('父类的call')
>>> class Child(Parent):
	    pass

>>> c = Child()
>>> c.call()
父类的call

3.2 多态

子类继承父类,重写同一个方法,使得父类、多个子类之间同一个方法,执行内容不一致。示例如下

>>> class Parent:
	def call(self):
		print('父类的call')
>>> class Child(Parent):
	def call(self):
		print('子类的call')

		
>>> c = Child()
>>> c.call()
子类的call

3.3 多重继承

写法:
class DrivedClass(BasedClass1,BasedClass2,BasedClass3)

>>> class Base1:
	def run1(self):
		print('Base1的run方法')

		
>>> class Base2:
	def run2(self):
		print('Base2的run方法')

		
>>> class Child(Base1,Base2):
	pass

>>> c = Child()
>>> c.run1()
Base1的run方法
>>> c.run2()
Base2的run方法

四 类的组合

class Tortoise:
    def __init__(self,x):
        self.num = x

class Fish:
    def __init__(self,x):
        self.num = x

class Pool:
    def __init__(self,x,y):
        self.tortoise = Tortoise(x)
        self.fish = Fish(y)

    def print_num(self):
        print('池中总共有乌龟%d只,鱼%d条' % (self.tortoise.num , self.fish.num))

#执行结果如下:  
>>> p = Pool(1,10)
>>> p.print_num()
池中总共有乌龟1只,鱼10条
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值