1 什么是猴子补丁,有什么用途
**解释**
1 Python猴子补丁(Monkey Patch)是一种在运行时动态修改代码的技术。
通在不修改源代码的情况下,改变代码的执行方式或增加功能
2 Monkey Patching是在 运行时(run time) 动态替换属性(attributes)或方法
3 Python的类是可变的(mutable),方法(methods)只是类的属性(attributes);
这允许我们在 运行时(run time) 修改其行为。这被称为猴子补丁(Monkey Patching),
它指的是偷偷地更改代码。
**哪里用过**
1 位置
import pymysql
pymysql.instal_as_mysqldb()
2 位置
gevent.monkey.patch_all()
3 这种情况 ---》json ---》内置模板---》没关注性能高低
-如果有性能高的json转换模块---》想替换---》如果都换,每个地方都要改,太麻烦了
-借助于猴子补丁---》程序运行一开始,动态的把json替换成ujson
json.loads()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
2 什么是反射,python中如何使用反射
2. **反射 (Reflection) 在 Python 中的使用:**
- **定义:** 反射是一种机制,允许程序在运行时访问、检查和修改它本身的状态和行为。
在 Python 中,反射通常通过一些内置的函数和特殊的属性来实现。
- **使用:**
- `getattr(obj, name[, default])`: 获取对象 `obj` 的属性 `name` 的值,如果属性不存在,可以提供默认值。
- `hasattr(obj, name)`: 检查对象 `obj` 是否有属性 `name`。
- `setattr(obj, name, value)`: 设置对象 `obj` 的属性 `name` 为指定的值。
- `delattr(obj, name)`: 删除对象 `obj` 的属性 `name`。
- `dir(obj)`: 返回对象 `obj` 的属性和方法列表。
class MyClass:
def __init__(self):
self.x = 10
obj = MyClass()
value = getattr(obj, 'x')
print(value)
has_attr = hasattr(obj, 'y')
print(has_attr)
setattr(obj, 'y', 20)
print(obj.y)
delattr(obj, 'x')
----------------总结--------------------------
1、反射类中的变量 : 静态属性,类方法,静态方法
2、反射对象中的变量、对象属性、普通方法
3、 反射模块中的变量
4、反射本文件中的变量
-getattr
-setattr
-hasattr
-delattr
def run():
print('走狗')
d=Dog()
setattr(d,'run',run)
d.run()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
3 http和https的区别
- **HTTP (HyperText Transfer Protocol):**
- 不加密传输数据。
- 默认端口是 80。
- 数据在传输过程中容易被窃听或篡改。
- **HTTPS (HyperText Transfer Protocol Secure):**
- 使用 SSL 或 TLS 协议进行加密传输,确保数据的安全性。
- 默认端口是 443。
- 通过证书验证来确认网站的身份,防止中间人攻击。
- 更安全,适用于需要保护用户隐私的场景,如在线支付、登录等。
- **总结:** HTTPS 在 HTTP 的基础上增加了安全性,通过加密保护了数据的传输过程,
- 对于涉及用户隐私和安全的应用更为合适。
~~~~~~~~~~~~~~~~~~~~~~~~~~总结~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTTP协议,英文全称是Hyper Text Transfer Protocol,是超文本传输协议
HTTPS协议,英文全称Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议
HTTPS 和 HTTP 的默认端口不同(443和80)
核心区别
HTTP+ SSL / TLS,也就是在 http上又加了一层处理加密信息的模块,比 http安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性
https=http+ssl
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32