类和对象
类:是对一群具有相同特征和行为的事物的一个统称,类是抽象的,是不能直接使用的。
- 特征被称为属性
- 行为被称为方法
对象:是由类创建出来的一个具体存在,可以直接使用。
dir内置函数
在标识符/数据后输入一个.,按下Tab键,iPython会提示该对象能够提供的方法列表
使用内置函数dir传入标识符/数据,可以查看该对象所有的属性和方法
提示:__方法名__格式的方法是python提供的内置属性和方法。
In [1]: def demo():
...: print("hello")
In [2]:
In [2]: dir(demo)
Out[2]:
['__annotations__',
'__call__',
'__class__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__str__',
'__subclasshook__']
类的定义
class 类名
def 方法1(self,参数列表):
pass
def 方法2(self,参数列表):
pass
对象的创建
对象 = 类名()
class Cat:
def eat(self):
# 哪个对象调用,传递的就是该对象的引用
print("%s 吃鱼" % self.name)
def drink(self):
print("%s 喝水" % self.name)
# 创建对象
tom = Cat()
tom.name = "汤姆猫"
tom.eat()
tom.drink()
注意:可以通过给对象赋值的方法,给类增加属性,但不推荐使用。
初始化方法
使用类名()创建对象时,会做以下事情:
- 给对象在内存中分配存储空间-创建对象
- 给对象的属性设置初始值-初始化方法init
class Cat:
def __init__(self):
print("这是一个初始化方法")
tom = Cat()
class Cat:
def __init__(self, new_name):
print("这是一个初始化方法")
self.name = new_name
def eat(self):
print("%s 吃鱼" % self.name)
tom = Cat("汤姆猫")
tom.eat()
del方法
在python中,当创建一个对象的时候会调用init方法,而当一个对象从内存中销毁的时候回调用del方法。
class Cat:
def __init__(self, new_name):
print("这是一个初始化方法")
self.name = new_name
def eat(self):
print("%s 吃鱼" % self.name)
def __del__(self):
print("%s 销毁了" % self.name )
tom = Cat("汤姆猫")
tom.eat()
# del可以将一个对象从内存中删除
del tom
print("-" * 50)
str内置方法
class Cat:
def __init__(self, new_name):
print("这是一个初始化方法")
self.name = new_name
def eat(self):
print("%s 吃鱼" % self.name)
def __del__(self):
print("%s 销毁了" % self.name)
def __str__(self):
# 必须返回一个字符串
return "我是 【%s】" % self.name
tom = Cat("汤姆猫")
tom.eat()
print(tom)