编辑
2024-06-20
Python
00

Python 数据类型详解:可变与不可变、可哈希与不可哈希

在Python中,理解数据类型的可变性可哈希性是编写高效代码的基础。本文将详细讨论Python中不同类型对象的可变性和哈希性,包括它们的优缺点和适用场景,帮助开发者更好地选择合适的数据类型。


一、数据类型分类表

数据类型可变性哈希性优点缺点适用场景示例
int不可变可哈希简单、可哈希修改需新建对象存储数值x = 5
float不可变可哈希精确度高、可哈希修改需新建对象科学计算x = 3.14
str不可变可哈希安全、可哈希修改需新建对象文本处理s = "hello"
tuple不可变可哈希安全、可哈希修改需新建对象多线程共享数据t = (1, 2, 3)
list可变不可哈希灵活、支持修改线程不安全动态数组lst = [1, 2, 3]
dict可变不可哈希快速查找、键值对存储不能作为字典键快速存储、查找d = {"a": 1}
set可变不可哈希支持去重、集合运算无法嵌套去重操作、集合运算s = {1, 2, 3}
frozenset不可变可哈希安全、可哈希不能修改不变集合fs = frozenset([1, 2, 3])
编辑
2024-06-15
TechNotes
00

ss 命令比 netstat 快的原因主要有以下几点:

编辑
2024-06-12
TechNotes
00

shell简单技巧

查找当前系统中存在的shell

  • 在/etc/shells 文件下查看
bash
gyc@GYC:~/shell$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /usr/bin/sh /bin/dash /usr/bin/dash /usr/bin/tmux /usr/bin/screen
编辑
2024-06-08
LinuxNotes
00
特性source test.shbash test.sh./test.sh
执行环境当前 Shell子 Shell子 Shell
环境变量影响会影响当前 Shell不影响当前 Shell不影响当前 Shell
脚本权限不需要执行权限不需要执行权限需要执行权限
执行速度较快(无子 Shell 开销)较慢(有子 Shell 开销)较慢(有子 Shell 开销)
使用场景改变当前 Shell 环境独立执行脚本独立执行脚本
编辑
2024-06-08
LinuxNotes
00

在配置 vsftpd 的过程中,我遇到了一个问题:将虚拟用户的名字改为和本地同名(存在)的用户时,无法登录 FTP,即虚拟用户可以登录 FTP,但本地用户不能登录,(虚拟用户和本地用户不能共存)。

实验后,发现将 /etc/pam.d/vsftpd 中的以下两行注释掉,然后把里面的其他内容都打开注释,本地用户就能登录了:

bash
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

这证明了是 PAM 模块认证的问题导致虚拟用户和本地用户不能共存。于是我去了解了一下 PAM 配置的内容,发现 required 需要所有内容都满足才行。当前两条配置是先验证虚拟用户登录通过,再继续向下验证是否是本地用户。由于验证本地用户的 control_flag 也为 required,所以会返回错误,导致验证不成功。