欢迎光临
我们一直在努力

类方法的学习,包看明白的bro

============================================

这是一个"用户信息读取器"

功能:把用户数据存起来,方便后面用

============================================

——————————————–

第一块:定义一个"类"(相当于造一个模板/模具)

——————————————–

class UserReader:
"""
类 = 模板
就像做蛋糕的模具,用这个模具可以造出很多个"蛋糕对象"
每个蛋糕都有自己的数据,但结构一样
"""

# —————————————-
# 第二块:类变量(所有对象共享的数据)
# —————————————-
DEFAULT_DATA = [
"张三,男,21", # ✅ 注意:英文逗号 , 不是中文逗号 ,
"李四,女,22",
"王五,男,27",
]
# 这个数据所有 UserReader 对象都能用
# 相当于模具自带的默认配方

# —————————————-
# 第三块:__init__ 方法(初始化/构造方法)
# —————————————-
def __init__(self, data=None):
"""
__init__ = 初始化方法
作用:创建对象时自动执行,用来准备初始数据

self = 当前对象自己
就像说"我的名字"、"我的年龄"

data = 外部传入的数据,可选
如果不传,就用默认的 DEFAULT_DATA
"""
# 三元表达式:如果 data 有值就用 data,否则用 DEFAULT_DATA
self._data = data if data is not None else self.DEFAULT_DATA

# self._users = 空列表,用来存解析后的用户字典
# _ 开头 = 私有的,外面不要直接动,通过方法访问
self._users = []

# —————————————-
# 第四块:read 方法(读取/解析数据)
# —————————————-
def read(self):
"""
read = 读取方法
作用:把 _data 里的字符串,解析成字典列表

流程:
1. 遍历每一行数据
2. 去掉空格换行
3. 跳过空行
4. 按逗号切开
5. 转成字典,加到 _users 列表
"""
try: # ← 开始尝试执行下面的代码
for line in self._data: # ← 遍历每一行数据
line = line.strip() # ← 去掉首尾空格和换行符

if not line: # ← 如果是空行(没有内容)
continue # ← 跳过,继续下一行

# 按英文逗号切成3段
# "张三,男,21" → ["张三", "男", "21"]
name, sex, age = line.split(",")

# 把这3段拼成字典,加到列表里
self._users.append({
"name": name, # 名字
"sex": sex, # 性别
"age": int(age) # 年龄转成整数("21" → 21)
})

except Exception as e: # ← 如果上面任何一步出错
print(f"解析出错:{e}") # ← 打印错误信息,不崩程序

return self._users # ← 返回结果

# —————————————-
# 第五块:@property 装饰器(把方法变成属性)
# —————————————-
@property
def users(self):
"""
@property = 把方法变成属性

正常调用:reader.users() ← 要加括号
用了 @property:reader.users ← 不用加括号,像访问变量一样

作用:只能读,不能改(保护数据)
"""
return self._users # ← 返回内部的 _users 列表

============================================

第六块:使用这个类(造蛋糕,用蛋糕)

============================================

造一个对象(用模具造一个蛋糕)

reader = UserReader() # ← 不传 data,用默认的 DEFAULT_DATA

调用 read 方法(让它去读取数据)

reader.read() # ← 执行解析

用 @property 访问结果(直接当属性用,不用括号)

print(reader.users) # ← 输出解析后的用户列表

赞(0)
未经允许不得转载:171主机测评 » 类方法的学习,包看明白的bro
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址