封装的概念
抽象
对象=属性+方法
类定义举例:
class Turtle: # Python 中的类名约定以大写字母开头
"""关于类的一个简单例子"""
# 属性
color = 'green'
weight = 10
legs = 4
shell = True
mouth = '大嘴'
# 方法
def climb(self):
print("我正在很努力的向前爬......")
def run(self):
print("我正在飞快的向前跑......")
def bite(self):
print("咬死你咬死你!!")
def eat(self):
print("有得吃,真满足^_^")
def sleep(self):
print("困了,睡了,晚安,Zzzz")
tt=Turtle() 定义对象,实例化
tt.climb()
tt.bite()
面向对象的特征:
1.封装:信息隐藏
可以以列表举例,演示对象的使用
2.继承:
举例:
class MyList(list):
pass
list2=Mylist()
list2.append
list2.sort()
3.多态
class A:
def fun(self):
print()
class B:
def fun(self):
print()
#多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度)
class Animal:
def run(self):
raise AttributeError('子类必须实现这个方法')
class People(Animal):
def run(self):
print('人正在走')
class Pig(Animal):
def run(self):
print('pig is walking')
class Dog(Animal):
def run(self):
print('dog is running')
peo1=People()
pig1=Pig()
d1=Dog()
peo1.run()
pig1.run()
d1.run()
self是什么?相当于C++\java中的this
同一类可以的生成不同对象。通过self来区分哪个对象
python要求类的函数的第一个参数必须是self
class Ball:
def setName(self, name):
self.name = name
def kick(self):
print("我叫%s,该死的,谁踢我..." % self.name)
a = Ball()
a.setName('球A')
# 第一个参数self告诉Python是a对象在调用方法,因为是隐藏的并且由Python自己传入,所以我们这里不需要写进来。
b = Ball()
b.setName('球B')
c = Ball()
c.setName('土豆') # 这叫不按套路出牌
a.kick()
b.kick()
c.kick()