config.py 讲解
这是项目中最简单的文件,用来存储配置信息。
原始代码
# Telegram API 凭证(从 https://my.telegram.org 获取)
API_ID = 31630651
API_HASH = "be85c71fb7ec7ffbed31328bb99f683f"
PHONE = "+18149001586"
# 如果有两步验证密码
PASSWORD = "" # 可选
# Session String(运行 login.py 后获取)
SESSION_STRING = "1BVtsOHEBu5-j2XpfOYXoo9eMT0Km4-..."
# 代理设置(如需要)
PROXY = None
# PROXY = ("socks5", "127.0.0.1", 1080) # 取消注释并配置代理
逐行讲解
第 1 行:注释
# Telegram API 凭证(从 https://my.telegram.org 获取)
#开头的是注释,程序不会执行- 注释用来解释代码的作用
- 中文注释完全没问题
第 2 行:整数变量
API_ID = 31630651
拆解:
API_ID是变量名=是赋值符号(不是"等于"的意思)31630651是一个整数类型的值
命名规范:
- Python 推荐用全大写命名常量
- 用下划线分隔单词:
API_ID、MAX_SIZE
第 3 行:字符串变量
API_HASH = "be85c71fb7ec7ffbed31328bb99f683f"
拆解:
API_HASH是变量名"..."双引号表示这是一个字符串(文本)- 单引号
'...'效果相同
第 4 行:字符串变量
PHONE = "+18149001586"
电话号码用字符串存储,因为:
- 可能包含
+号 - 不需要进行数学运算
第 7 行:空字符串
PASSWORD = "" # 可选
""是空字符串(长度为0)# 可选是行内注释- 如果没有两步验证密码,就保持为空
第 10 行:很长的字符串
SESSION_STRING = "1BVtsOHEBu5-j2XpfOYXoo9eMT0Km4-..."
这是登录后获取的会话凭证,是一个很长的字符串。
- 它包含了你的登录状态
- 相当于"记住密码"功能
- 有了它就不需要每次都输入验证码
第 13 行:None 值
PROXY = None
None是 Python 的空值,表示"什么都没有"- 类似其他语言的
null或nil - 这里表示不使用代理
第 14 行:注释掉的代码
# PROXY = ("socks5", "127.0.0.1", 1080) # 取消注释并配置代理
- 这行被
#注释掉了,不会执行 - 如果需要代理,删掉开头的
#就可以启用 ("socks5", "127.0.0.1", 1080)是一个元组(不可修改的列表)
这里的数据类型汇总
| 变量名 | 类型 | 说明 |
|---|---|---|
API_ID |
int | 整数,API ID |
API_HASH |
str | 字符串,API 密钥 |
PHONE |
str | 字符串,手机号 |
PASSWORD |
str | 字符串,可为空 |
SESSION_STRING |
str | 字符串,会话凭证 |
PROXY |
None 或 tuple | 空值或元组 |
如何在其他文件中使用?
其他文件通过 import 导入这些变量:
from config import API_ID, API_HASH, PHONE
这样就可以使用 config.py 中定义的变量了。
练习
- 创建一个新变量
BOT_USERNAME = "@BotFather" - 试着打印这些变量:
print(API_ID) print(f"手机号是: {PHONE}")
安全提示
真实项目中,敏感信息不应该直接写在代码里。更好的做法:
import os
# 从环境变量读取
API_ID = int(os.environ.get("API_ID"))
API_HASH = os.environ.get("API_HASH")
这样可以避免把密码泄露到代码仓库中。