面向对象的概念
什么是面向对象: 思想, 完成任何功能, 都找一个对象帮你完成, 关注结果
有哪些对象? 类, 函数, 模块, 包
面向对象三个特征: 封装,继承,多态
面向对象的语法
-
类
类 使用于 描述 具有相同属性和方法的 一类事务
语法:
class 类名(object): 类属性 = 值 __类私有属性 = 值 def __init__(self,参数1,参数2...): # 初始化方法 self.属性1 = 参数1 self.属性2 = 参数2 # 实例方法 def 方法名(self,参数): pass # 类方法 @classmethod def 方法名(cls,参数): pass # 静态方法 @staticmethod def 方法名(参数): # 即不是实例上的属性也不使用类属性 pass #魔术方法 def __new__(cls,*args,**kwargs): return super().__new__(cls) def __str__(self): return "对象的描述信息" def __del__(self): # 对象销毁执行 # 用于处理清理工作(收尾工作)
-
对象
# 创建对象 对象 = 类名(参数) # 使用对象 对象.属性名 对象.方法名() # 类使用类属性和类方法,静态方法 类.类属性名 类.类方法名() 类.静态方法名() # 补充扩展了解 对象.类属性 对象.类方法() 对象.静态方法()
-
继承
- 继承的概念: 子类继承父类,直接使用父类上定义的属性和方法
- 继承的分类
- 单继承
- 多层继承
- 多继承了解
- 私有属性: 不能被继承
- 重写: 子类中出现与父类相同名字的成员就是重写
- 因为父类中的方法不满子类需求
- 多态:
- 继承
- 重写
- 调用相同方法,传入不同类型的值, 结果不同
- 如果获取对象的信息
- type() 对象的类型
- dir() 查看对象上的所有属性和方法
- isinstance(obj,类): 判断对象是否是指定类的实例对象
单例模式
-
单例概念: 一个类有且只有一个对象
-
如何实现
class 类名(object): __instance = None #保存对象 __isInit = False #开始没有初始化 def __new__(cls,*args,**kwargs): if not cls.__instance: cls.__instance = super().__new__(cls) return cls.__instance def __init__(self,*args,**kwargs): if not self.__isInit: # 初始化 # 已经初始化 self.__isInit = True 单例对象 = 类名(参数..)
异常
- 异常的完整语法
#完整的语法
try:
# 可能出现异常的代码
except 异常类名 as e:
# 获取异常错误信息
print(e)
else:
# 没有任何异常走到这里
finally:
# 无论如何都走到这里
- 如何抛出异常
raise 异常对象----->raise 异常类名("提示信息")
- 如何自定义异常
class 异常类名(Exception):
def __init__(self,*args,**kwargs):
# 初始化工作
def __str__(self):
retrun "错误提示"
raise 异常类名("错误信息")
模块和包
-
模块和包概念
模块: 就是一个py文件
包: 就是一个文件夹, 在文件中需要一个_init_.py包的初始化文件
-
模块和包的使用
import 模块名/包.模块名
from 包/模块 import 模块/函数
from 包.模块 import 函数1,函数2
from 包 import 模块 as 别名
-
模块/包查找顺序
-
内置模块
-
标准模块 python安装路径/Lib目录
-
当前文件所在路径
-
第三方包安装路径 python安装路径/Lib/site-packages目录中
-
自定义包的查找路径
import sys
sys.path.append(“路径”)
sys.path.insert(0,“路径”) -
自定义的包或者模块的名字不要与 内置,标准,第三方模块重名.
-
给程序传参数
# 格式: 命令 参数
python xxx.py
- 给python文件传递参数
# 参数传递给python文件
python xxx.py 参数1 参数2
# 如何接收传递参数
import sys
sys.argv: 保存了程序传递进来参数
1. 列表
2. 每个元素都是字符串
3. 第一个元素 python文件的路径
4. 之后的参数就是传递个python文件的参数
例子:
python yum2.py install mysql
# 接收参数
import sys
sys.argv[1]# 参数值 install
sys.argv[2]# 参数值 mysql
列表推导式
-
概念: 轻量级的 通过 for…in…循环快速生成列表
根据 表达式 推算, 从而创建列表
-
语法
完整语法: [表达式 for 变量 in 列表 简单语句]
[i**2 for i in range(0,11)] [i for i in range(0,21) if i%2==1] #奇数
来源:CSDN
作者:xtt1005
链接:https://blog.csdn.net/xtt1005/article/details/103881677