Skip to content

Commit

Permalink
python
Browse files Browse the repository at this point in the history
  • Loading branch information
deipss committed Apr 28, 2024
1 parent bf51cb6 commit 9ef4ffa
Showing 1 changed file with 68 additions and 3 deletions.
71 changes: 68 additions & 3 deletions docs/Python/常用语句.md
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,6 @@ print(phone.voltage)

`__slots__` 的作用就是限制一个类创建的实例只能有固定的属性,不能随意添加属性。


```python
class Phone:

Expand All @@ -456,18 +455,21 @@ phone.size = 6 # 报错:AttributeError: 'Phone' object has no attribu
```

## 继承判定函数

- type() 函数:type()函数可以判断某个对象是否是某个类型,注意:子类的对象不是父类的对象的类型。
- isinstance()函数:isinstance()函数可以判断某个对象是否是某个类型的实例,子类对象也是父类对象的实例。
- issubclass()函数:issubclass()函数可以用来判断一个类是否是另外一个类的子类。

## 多继承的解析顺序
## 多继承的解析顺序

如果继承的多个父类拥有同样的属性和方法,那么会使用哪个父类的呢?

会使用先继承的父类的,后继承的无效,如果父类中都没有,则会去父类的父类寻找,一直向上找。

即使类没有写明继承其他类,但是所有的类都直接或间接继承自Object类。

## 抽象类

含有抽象方法的类成为抽象类。抽象方法就是没有方法体,方法体为空的方法。

```python
Expand All @@ -476,9 +478,72 @@ class Vehicle:
pass
```

# JSON

```python
import json

class Student:

def __init__(self, sid, name, age):
self.sid = sid
self.name = name
self.age = age

if __name__ == '__main__':
# 将字典转换为JSON数据

stu_dict = {"sid": "001", "name": "zhangsan", "age": 18}

json_data = json.dumps(stu_dict, ensure_ascii=False) # 使用dumps()方法,将字典转换为JSON数据
print(json_data)
print(type(json_data))

# 将JSON数据转换为字典

json_data = '{"sid": "001", "name": "张三", "age": 18}'

stu_dict = json.loads(json_data) # 使用loads()方法,将JSON数据转换为字典
print(stu_dict["name"])

# 对象转换为JSON

stu = Student("001", "张三", 98)
stu_json = json.dumps(stu.__dict__, ensure_ascii=False) # 获取对象的字典格式
print(f"对象转换为json:{stu_json}")

# JSON转换为对象
json_str = '{"sid": "001", "name": "张三", "age": 98}'

stu_dict = json.loads(json_str) # 首先将JSON字符串转换为字典
print(stu_dict["name"])

stu = Student(**stu_dict) # 然后通过双星号字典形参传递给构造方法,创建对象,这个类,需要有构造方法
print(stu.name)
```

# 模块和包

##
每一个以 .py 结尾的python文件就是一个模块。

```python
import 模块名 # 导入单个模块
import 模块名1, 模块名2 # 导入多个模块
import time # 导入时间模块,就有一个time的py文件


from 模块名 import 功能名
from 模块名 import 功能名 as 别名 # 功能也可以起别名
from time import sleep # 只导入模块中的sleep方法

from 模块名 import *
from time import * # 只导入模块中所有的函数

```


## 模块的搜索顺序

python解释器在导入模块的时候,会搜索当前目录指定模块名的文件,如果有就直接导入,如果没有在搜索系统目录。

所以在开发的时候,给文件起名,不要和系统的模块文件重名,否则会导致调用的系统功能无效。

0 comments on commit 9ef4ffa

Please sign in to comment.