5-什么是猴子补丁,有什么用途?什么是反射,python中如何使用反射?http和https的区别?

news/2024/5/19 5:44:24 标签: python, http, https, 猴子补丁, Monkey Patch, 反射
http://www.w3.org/2000/svg" style="display: none;">

1 什么是猴子补丁,有什么用途

python">**解释**
	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()  # 动态的替换 原来使用 mysqldb链接数据库的类 conn
    2 位置
    gevent.monkey.patch_all() # 动态的替换 原来阻塞的io方法 ,全都替换成自己写的,不阻塞的 time,socket...
    3 这种情况  ---》json ---》内置模板---》没关注性能高低
    	-如果有性能高的json转换模块---》想替换---》如果都换,每个地方都要改,太麻烦了
        -借助于猴子补丁---》程序运行一开始,动态的把json替换成ujson
        json.loads()

python_23">2 什么是反射python中如何使用反射

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()

   # 使用 getattr 获取属性
   value = getattr(obj, 'x')
   print(value)  # 输出 10

   # 使用 hasattr 检查属性是否存在
   has_attr = hasattr(obj, 'y')
   print(has_attr)  # 输出 False

   # 使用 setattr 设置属性
   setattr(obj, 'y', 20)
   print(obj.y)  # 输出 20

   # 使用 delattr 删除属性
   delattr(obj, 'x')

----------------总结--------------------------
# 反射就是通过字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员
# 反射:是程序在运行过程中通过字符串来操作对象的属性和方法

# 可使用反射的地方:
1反射类中的变量 : 静态属性,类方法,静态方法
2反射对象中的变量、对象属性、普通方法
3反射模块中的变量
4反射本文件中的变量

# python 提供了一些反射方法
    -getattr
    -setattr
    -hasattr
    -delattr
	
# 例子
def run():
    print('走狗')
d=Dog()
setattr(d,'run',run)
d.run()
 

httphttps_81">3 httphttps的区别

python">
- **HTTP (HyperText Transfer Protocol):**
  - 不加密传输数据。
  - 默认端口是 80- 数据在传输过程中容易被窃听或篡改。

- **HTTPS (HyperText Transfer Protocol Secure):**
  - 使用 SSL 或 TLS 协议进行加密传输,确保数据的安全性。
  - 默认端口是 443- 通过证书验证来确认网站的身份,防止中间人攻击。
  - 更安全,适用于需要保护用户隐私的场景,如在线支付、登录等。

- **总结:** HTTPS 在 HTTP 的基础上增加了安全性,通过加密保护了数据的传输过程,
- 对于涉及用户隐私和安全的应用更为合适。

~~~~~~~~~~~~~~~~~~~~~~~~~~总结~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# https://zhuanlan.zhihu.com/p/561907474

# 名字
HTTP协议,英文全称是Hyper Text Transfer Protocol,是超文本传输协议
HTTPS协议,英文全称Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议

# 默认端口
 HTTPS 和 HTTP 的默认端口不同(44380)
核心区别

# HTTPS在 HTTP与 TCP 之间加入了一个加密/身份验证层,提供了身份验证与加密通讯
HTTP+ SSL / TLS,也就是在 http上又加了一层处理加密信息的模块,比 http安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性
https=http+ssl


# HTTP 由于是明文传输,主要存在三大风险:窃听风险、篡改风险、冒充风险

http://www.niftyadmin.cn/n/5190526.html

相关文章

微软宣布计划在 Windows 10 版本 22H2 中引入 AI 助手 Copilot

根据之前的传言,微软宣布计划在 Windows 10 版本 22H2 中引入 AI 助手 Copilot。Copilot 将包含在 Windows 10 家庭版和专业版中。该更新的发布日期尚未公布,但预计将在不久的将来发布。 在一份新闻稿中,微软表示在向 Windows 11 用户提供 Co…

openfoam常见错误及其解决方案

1.:--> FOAM FATAL ERROR: (openfoam-2212) cannot find file "/home/user/jie/app/OpenFOAM-v2212/run/cavity/system/controlDict" 原因:进错了目录,在案例文件夹下执行即可 2.输入./Allwmake -j -s -q -l提示Error (Allwmake…

golang学习笔记——编写 FizzBuzz 程序

编写 FizzBuzz 程序 首先,编写一个用于输出数字(1 到 100)的程序,其中有以下变化: 如果数字可被 3 整除,则输出 Fizz。 如果数字可被 5 整除,则输出 Buzz。 如果数字可同时被 3 和 5 整除&…

学习指南:如何快速上手媒体生态一致体验开发

过去开发者们在使用多媒体能力时,往往会遇到这样的问题,比如:为什么我开发的相机不如系统相机的效果好?为什么我的应用和其他的音乐一起发声了,我要怎么处理?以及我应该怎么做才能在系统的播控中心里可以看…

Map.of方法转换为JDK8以下版本错误记录

需求 Map.of方法是JDK9出现的新方法&#xff0c;JDK8环境下运行需要改写这行代码 return R.ok(Map.of("token", token));错误示范 return R.ok(new HashMap<String,Object>().put("token", token));原因分析 首先重温put方法的返回值&#xff1a…

Android 获取设备内存和外存

参考 Android 获取设备运行内存信息 https://blog.csdn.net/b1tb1t/article/details/131290808 Android 获取设备外存 // 全部外存, 和手机标称不一样public static long getTotalStorage() {File path Environment.getExternalStorageDirectory();StatFs stat new StatFs(p…

达尔优EK87键盘说明书

EK87说明书连接说明&#xff1a; **有线模式&#xff1a;**开关拨到最右边&#xff0c;然后插线连接电脑即可使用 2.4G **接收器模式&#xff1a;**开关拨到中间&#xff0c;然后接收器插入电脑USB接口即可使用 **蓝牙模式&#xff1a;**开关拨到最左边&#xff0c;然后按FNQ长…

竞赛选题 深度学习驾驶行为状态检测系统(疲劳 抽烟 喝水 玩手机) - opencv python

文章目录 1 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的驾…