python基础语法

json格式数据转换

json.dumps(data)

通过 json.dumps(data) 方法把 python数据 转化为了 json数据

python 复制代码
data= json.dumps(data)

如果有中文可以带上:ensure_ascii=False 参数来确保中文正常转换

json. loads(data)

通过 json.loads(data) 方法把 json数据 转化为了 python列表或字典

python 复制代码
data = json. loads(data)

异常捕获

捕获全部异常

python 复制代码
try:
	xxx
except:
	xxx

捕获指定异常

python 复制代码
try:
	xxx
except (NameErr, ZeroDivisionError) [ as 别名]:
	xxx

模块

模块导入

语法

python 复制代码
from 模块名 import [模块 | 类 | 变量 | 函数 | *] [as 别名]

python包

什么是 Python 包?

一个文件夹,里面可以存放许多Python模块(代码文件),通过包,在逻辑上将一批模块归为一类,方便使用。

__init__.py 文件的作用?

创建包会默认自动创建的文件,通过这个文件来表示一个文件夹是一个Python包,而非普通文件夹。(只有这个文件存在它才是包,否则是普通文件夹)

__all__ 变量 的作用?

控制 import * 能够导入的内容

类和对象

类由哪两部分组成?

  • 类的属性,称之为:成员变量
  • 累的行为,称之为:成员方法

注意:函数是写在类外的,定义在类内部的我们都称之为方法

类的定义

python 复制代码
class 类名称:
	成员变量

	def 成员方法(self, 参数列表):
		成员方法体

创建类对象

python 复制代码
对象 = 类名称()

self 的作用

  • 表示 类对象本身
  • 只有通过 self,成员方法才能访问类的成员变量
  • self 出现在形参列表中,但是不占用参数位置,无需理会

构造方法

构造方法的名称:
__init__

例如:

python 复制代码
def __init__(self, name):
	self.name = name

构造方法的作用

  • 构建类对象的时候会 自动运行
  • 构建类对象的传参会传递给构造方法,借此特性可以给成员变量赋值

注意事项

  • 构造方法不要忘记 self关键字
  • 在方法内使用成员变量需要使用 self

魔术方法(内置方法)

常用的魔术方法:

方法 功能
__init__ 构造方法,可用于创建类对象的时候设置初始化行为
__str__ 用于实现类对象转字符串的行为
__lt__ 用于2个类对象进行小于或大于比较
__le__ 用于2个类对象进行小于等于或大于等于比较
__eq__ 用于2个类对象进行相等比较

封装

私有成员

命名以 __ 开头 的 成员变量成员方法 即为 私有成员

举例:

python 复制代码
class 类名称:
    __name = None
    
    def __get_name(self):
        return self.__name

继承

语法

python 复制代码
class 类名(父类1, 父类2, ..., 父类N):
	类的内容

单继承和多继承

  • 单继承:一个类继承另一个类
  • 多继承:一个雷继承多个类,按照顺序从左向右一次继承

多继承中,如果父类有同名方法或属性,先继承的优先级高于后继承的

pass关键字的作用

pass 是占位语句,用来保证函数(方法)或类定义的完整性,表示无内容,空的意思

复写

定义

对父类的成员属性或成员方法进行重新定义

语法

在子类中重新实现同名成员方法或成员属性即可

子类如何调用父类成员

方法一:调用父类成员

  • 使用成员变量:父类名.成员变量
  • 使用成员方法:父类名.成员方法(self)

方法二:使用 super() 调用父类成员

  • 使用成员变量:super().成员变量
  • 使用成员方法:super().成员方法()

举例

python 复制代码
# 父类
class SuperTest:
    super_name = None

    def get_name(self):
        return self.super_name

# 子类
class ChildTest(SuperTest):
    child_name = None
    def get_name1(self):
        self.child_name = SuperTest.super_name
        SuperTest.get_name(self)

    def get_name2(self):
        self.child_name = super().super_name
        super().get_name()

注意:只可以在子类内部调用父类的同名成员,子类的实体类对象调用默认是调用子类复写的


多态

1.什么是多态?

多态指的是,同一个行为,使用不同的对象获得不同的状态,如,定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态

2.什么是抽象类(接口)

包含抽象方法的类,称之为抽象类。抽象方法是指:没有具体实现的方法(pass)称之为抽象方法

3.抽象类的作用

多用于做顶层设计(设计标准),以便子类做具体实现,也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法并配合多态使用,获得不同的工作状态。


类型注解

类型注解有什么作用?

  • PyCharm 等开发工具 对代码做类型推断 协助做代码提示
  • 开发者自身做类型的备注

类型注解支持

  • 变量的类型注解
  • 函数(方法)的形参和返回值的类型注解

变量的类型注解语法

  • 语法一:变量: 类型
  • 语法二:在注释中,# type: 类型

举例:

python 复制代码
my_list: list = [1, 2, 3]
my_tuple: tuple = (1, 2, 3)
my_dict: dict = {"a": 1, "b": 2, "c": 3}
my_set: set = {"a", "b", "c"}

my_set_str = "a,b,c"   # type: str

注意事项

类型注解只是提示性的,并非决定性的。数据类型和注解类型无法对应也不会导致错误

方法的类型注解语法

  • 可以在 形参返回值 添加类型注解
  • 格式如下:
python 复制代码
# 返回值类型注解的符号使用 ->
def 函数方法名(形参: 类型, ..., 形参: 类型) -> 返回值类型
	pass

举例

python 复制代码
def my_func(arg1: int, arg2: str) -> str:
    return str(arg1) + arg2

联合注解

什么是 Union 类型

使用 Union 可以 定义联合类型注解

Union 的使用方式

  • 导包:from typing import Union
  • 使用:Union[类型, 类型, ..., 类型]

举例

python 复制代码
from typing import Union

my_list1: list[Union[int, str]] = [1, 2, "a", "b"]
相关推荐
用户69371750013842 小时前
Google 正在“收紧侧加载”:陌生 APK 安装或需等待 24 小时
android·前端
蓝帆傲亦2 小时前
Web 前端搜索文字高亮实现方法汇总
前端
用户69371750013842 小时前
Room 3.0:这次不是升级,是重来
android·前端·google
qq_417695053 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水3 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
yy我不解释4 小时前
关于comfyui的mmaudio音频生成插件时时间不一致问题(一)
python·ai作画·音视频·comfyui
踩着两条虫4 小时前
VTJ.PRO 核心架构全公开!从设计稿到代码,揭秘AI智能体如何“听懂人话”
前端·vue.js·ai编程
紫丁香5 小时前
AutoGen详解一
后端·python·flask
FreakStudio5 小时前
不用费劲编译ulab了!纯Mpy矩阵micronumpy库,单片机直接跑
python·嵌入式·边缘计算·电子diy
jzlhll1235 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin