1. 类和对象
- 类
类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念。类用于创建对象。
特征即属性,行为即方法
- 对象
对象是类创建出的真实事物。
2.面向对实现方法
-
定义类
Python2中类分为经典类和新式类- 语法
class 类名(): 代码 ......
注:类名须满足标识符命名规则,同时遵守大驼峰命名习惯。
- 示例
class Dog(): def eat(self): print('bone')
- 经典类
经典类:不由任何内置类型派生出的类class 类名: 代码 ......
-
创建对象
对象又称实例。- 语法
对象名=类名()
- 示例
class Dog(): def eat(self): print('bone') # 创建对象 d1=Dog() # d1对象调用实例方法 d1.eat() # bone
-
self
self指的是调用该函数的对象。
示例class Dog(): def eat(self): print('bone') print(self) # 创建对象 d1 = Dog() print(d1) # <__main__.Dog object at 0x0000010F1B4E9400> # d1对象调用实例方法 d1.eat() # bone # <__main__.Dog object at 0x0000010F1B4E9400> d2 = Dog() print(d2) # <__main__.Dog object at 0x0000010F1B4E94A8> # d2对象调用实例方法 d2.eat() # bone # <__main__.Dog object at 0x0000010F1B4E94A8>
属性即特征。
对象属性既可以在类外面添加和获取,也可以在类里面添加和获取。
1. 类外面添加对象属性
- 语法
对象名.属性名=值
- 示例
d1.color='white'
d1.age=2
2. 类外面获取对象属性
- 语法
对象名.属性名
- 示例
print(d1.color)
print(d1.age)
3. 类里面获取对象属性
- 语法
self.属性名
- 示例
class Dog():
def dog_info(self):
print(self.color)
print(self.age)
# 创建对象
d1=Dog()
# 添加实例属性
d1.color='white'
d1.age=2
d1.dog_info()
# whilte
# 2
Python中__xx__()函数称魔法方法,指的是具有特殊功能的函数。
1. init()
作用:初始化对象。
- 无参数的
__init__()
class Dog():
# 定义初始化函数
def __init__(self):
# 添加实例属性
self.color='white'
self.age=2
def dog_info(self):
# 类中调用实例属性
print(self.color)
print(self.age)
# 创建对象
d1=Dog()
# 调用方法
d1.dog_info()
# white
# 2
注:__init__()
方法,在创建对象时默认被调用,不需手动调用;__init__(self)
中self参数,不需开发者传递,python解释器会自动把当前对象引用传递过去。
-
带参数的
__init__()
- 语法
def __init__(self,属性1,属性2,...) self.属性1=属性1 self.属性2=属性2 ......
- 示例
class Dog(): # 定义初始化函数 def __init__(self,color,age): # 添加实例属性 self.color=color self.age=age def dog_info(self): # 类中调用实例属性 print(self.color) print(self.age) # 创建对象 d1=Dog('white',2) d2=Dog('black',3) # 调用方法 d1.dog_info() # white # 2 d2.dog_info() # black # 3
2. str()
当使用print(对象名)
时,默认打印对象的内存地址。若类中定义了__str__()
方法,则会打印这个方法中return的数据。
class Dog():
# 定义初始化函数
def __init__(self,color,age):
# 添加实例属性
self.color=color
self.age=age
def __str__(self):
return f'color:{self.color},age:{self.age}'
# 创建对象
d1=Dog('white',2)
print(d1) # color:white,age:2
3. del()
当删除对象时,python解释器会默认调用__del__()
方法。
class Dog():
# 定义初始化函数
def __init__(self,color,age):
# 添加实例属性
self.color=color
self.age=age
def __del__(self):
print(f'{self}对象已删除')
# 创建对象
d1=Dog('white',2)
del d1 # <__main__.Dog object at 0x000001AD5603B240>对象已删除
16
Levi_5