Files
AI0814_jiaoan_public/w1_d3/object_property.py
T
2026-09-23 21:27:55 +08:00

58 lines
1.3 KiB
Python

from dataclasses import dataclass
# 最内层:人
@dataclass
class Person:
name: str
age: int
job: str
# 城市:里面包含 Person 对象
@dataclass
class City:
city_name: str
people: Person # 成员是 Person 对象
# 省份:里面包含城市列表
@dataclass
class Province:
province_name: str
city_list: list[City]
# 最外层顶级对象 Country,对标 LLM 的 res 返回对象
@dataclass
class Country:
country_name: str
province_list: list[Province]
# 先造最内层的人
p = Person(name="张三", age=20, job="程序员")
# 造城市,把人塞进去
hz = City(city_name="杭州市", people=p)
# 造省份,把城市放进列表
zj = Province(province_name="浙江省", city_list=[hz])
# 顶级大对象:整个中国,对标 res
china = Country(
country_name="中国",
province_list=[zj]
)
# 直接打印顶级对象 dataclass 友好一点,但依然不能直接拿内层数据
print(china)
# 逐层拆解,和 LLM 取值一一对应
# 1.取省份列表
provinces = china.province_list
# 2.取第0个省份
zhejiang = provinces[0]
# 3.取该省第0个城市
hangzhou = zhejiang.city_list[0]
# 4.拿到人对象,取 name
person_name = hangzhou.people.name
print(person_name) # 张三
print(hangzhou.people.age) # 20
result = china.province_list[0].city_list[0].people.name
print(result)