-
vars()不传参时等价于locals(),传参后返回对象的__dict__;locals()只返回当前作用域局部变量快照且不可修改,vars()则依赖对象是否支持__dict__。
-
DetailView默认用pk查数据库,需在urls.py显式配置pk/slug;查不到抛Http404而非空页;关联查询应在get_queryset()用prefetch_related优化,过滤逻辑必须前置,自定义行为重写get_object()或get_queryset()。
-
DRF需手动注册到INSTALLED_APPS并正确配置参数:instance用于序列化模型对象,data用于反序列化前端数据;router注册需指定basename且URL路径严格匹配;CSRF问题应通过认证方式切换而非禁用。
-
argparse可通过type=str和合理nargs配置模拟curl--data-raw语义:默认nargs=None配合shell引号即可原样接收字符串,无需额外处理;推荐显式指定type=str并添加清晰help说明其不解析、不编码的原始传递特性。
-
答案:Python3提供多种字符串方法处理大小写,1.str.upper()将字符串转为大写;2.str.lower()转为小写;3.str.title()实现首字母大写;4.str.swapcase()互换大小写;5.isupper()、islower()、istitle()用于判断大小写状态。
-
dotenv加载失败主因是load_dotenv()未调用或时机过晚,需置于入口文件顶部;跨目录需显式指定路径;pydantic-settings提供类型校验与默认值但启动较慢,应延迟初始化。
-
__slots__仅限制动态添加实例属性,不阻止已有属性赋值、类属性、描述符、property或子类绕过;__setattr__是统一校验入口,需谨慎处理内置属性;不可变性需深拷贝或封装,而非依赖tuple/frozenset。
-
Python类序列化应避免直接使用pickle,因其存在兼容性、安全性和可维护性问题;推荐优先采用字典+JSON方案,通过to_dict()和from_dict()显式控制字段,并对特殊类型做预处理;复杂场景可选用dataclass+dacite或pydantic提升开发效率与健壮性。
-
Python中迭代器和生成器实现懒加载以节省内存,迭代器需实现__iter__和__next__方法,生成器函数用yield简化编写并自动支持状态暂停与恢复。
-
带参数装饰器本质是三层嵌套函数:最外层接收装饰器参数并返回中间层装饰器,中间层接收被装饰函数并返回内层wrapper,内层负责执行逻辑与重试等操作。
-
Python字符串切片和内置方法是高效编码的关键工具:切片s[start:end:step]支持省略参数、负索引与越界安全;方法如strip()、split()、join()等均返回新字符串,需赋值生效,组合使用可简洁解决实际问题。
-
CSV中文乱码需匹配真实编码,常见为GBK或utf-8-sig;dtype须显式指定防类型错误,如手机号用str、含空整数用"Int64";结构异常用skiprows/header/usecols调整;大文件用chunksize分块处理,nrows仅截断。
-
答案:Python中创建类需使用class关键字定义属性和方法,通过\_\_init\_\_初始化实例,self引用对象本身,支持继承、多态及魔术方法实现高级行为。
-
路径分隔符、换行符、包名大小写、环境变量四类问题需统一处理:用pathlib.Path替代字符串拼接,文本文件操作加newline=""参数,requirements.txt全小写,环境变量用os.getenv+pathlib.Path.home()兼容跨平台。
-
python-docx仅支持.docx格式,不支持.doc;其paragraphs仅含正文段落,不含标题、表格等;中文显示依赖字体名但不校验存在性;纯文本提取需过滤空段落并逐run拼接。