1.基础知识
类是对象的抽象化,对象是类的具体化。Python作为一门弱类型语言,虽然与Java的面向对象有相似,但不能完全照搬。
2.面向对象实现方法
2.1实现类
python中实现方法分为经典类和新式类,父类或者以上有object 就是新式类 否则是经典类。
在多继承时,经典类进行的是深度优先搜索,而新式类则是广度优先。
新式类实现方法:
语法:
class 类名(object):
代码 ......
class A(object):
pass
旧式类实现方法:
语法:
class 类名():
代码 ......
class A(): # 经典类
pass
class B(A): # 经典类
pass
创建类时遵循驼峰式命名的规范 类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage。
2.2创建对象
- 语法
对象名 =类名()
class A(object):
pass
a = A()
3.基础魔法方法
在Python中, __xx__() 的函数叫做魔法⽅法,指的是具有特殊功能的函数。
3.1 __init__()
__init__() 被称为构造函数,主要用于创建对象并将对象的数据初始化,在创建对象时自动调用。但在__init__()调用之前,还调用了__new()__方法。
工作原理:
1. __new__:创建对象的时候首先自动调用__new__,它的作用就是创建实例,然后将该实例返回
2. __init__:当实例创建完毕之后被调用的,然后通过__init__给实例设置初始值
3. __new__先被调用,__init__后被调用,__new__的返回值(实例)将传递给__init__的第一个参数self,然后__init__给这个实例设置一些参数,__init__不需要返回值。
摘自:(16条消息) Python中面向对象(学习笔记)_南枝向暖北枝寒-CSDN博客
class Animal(object):
def __init__(self, name, age):
self.name = name
self.age = age
"""
self是一个关键字,代表对象本身。
"""
dog = Animal('旺财', 1)
3.2__str__()
当使⽤print输出对象的时候,默认打印对象的内存地址。如果类定义了 __str__ ⽅法,那么就会打印从 在这个⽅法中 return 的数据。
还有一个魔法方法__repr__()也是显示信息。但是__repr__()是面向开发者,而__str__()是面向用户的。
class Animal(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f'使用str:我是{self.name},今年{self.age}岁'
def __repr__(self):
return f'使用repr'
dog = Animal('旺财', 1)
如果将对象放在容器中进行输出,调用的是__repr__
方法。
3.3__del()__
__del()__是析构器,当一个实例被销毁时自动调用的方法。
class Animal(object):
def __init__(self):
print('调用了__init__()方法')
def __del__(self):
print('调用了__del__()方法')
animal = Animal()