1.概念 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
2.类和对象的关系 类是模板,对象是根据这个模板创建出来的 类只需要有一个,对象可以有多个(一张图纸可以造多个飞机)
3.类:属性(信息)和方法(你能完成的事) 1).类名:这类事物的名字,满足大驼峰命名法 2).属性:这个类创建出的对象有什么特征 3).方法:这个类创建出的对象有什么行为 ?
#小猫爱吃鱼,小猫要喝水
class Cat():
def eat(self):
print('%s爱吃鱼' %self.name)
def drink(self):
print('小猫要喝水')
tom = Cat()
tom.name = 'Tom'
print(tom)
tom.eat()
tom.drink()
hello_kitty = Cat()
hello_kitty.name = 'hello_kitty'
hello_kitty.eat()
hello_kitty.drink()
二.初始化的方法
由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法
注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去。 ?
class Cat():
def __init__(self,name):
print('这是一个初始化方法')
self.name = name
def eat(self):
print('%s爱吃鱼' %self.name)
cat = Cat('tom')
print(cat.name)
hello_kitty = Cat('HK')
print(hello_kitty.name)
hello_kitty.eat()
三.__str__方法
"""
__str__方法
"""
class Cat():
def __init__(self,name):
self.name = name
def __str__(self):
return '我是%s' %self.name
tom = Cat('牛奶')
print(tom)
|