You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 3.6的类中实现指定人名搜索信息功能?

实现人员搜索功能的Python类示例

绝对可以实现!Python 3.6完全支持你要的这种类内搜索功能,下面我给你一个具体的实现示例,你可以直接参考或者修改来适配你的需求:

首先,我们可以先定义一个Person类来存储单个人员的基础信息:

class Person:
    def __init__(self, name, role, department):
        self.name = name
        self.role = role
        self.department = department

    def __str__(self):
        return f"姓名: {self.name}, 职位: {self.role}, 部门: {self.department}"

接下来,创建一个管理人员信息的PersonDirectory类,里面实现核心的搜索逻辑:

class PersonDirectory:
    def __init__(self):
        # 预先存入一些人员信息,你也可以通过方法动态添加
        self.people = [
            Person("sudar", "资深工程师", "后端开发部"),
            Person("other_person", "产品经理", "产品部"),
            Person("alice", "设计师", "UI/UX设计部")
        ]

    def search_by_name(self, name):
        # 遍历查找匹配的人员(不区分大小写)
        for person in self.people:
            if person.name.lower() == name.lower():
                # 根据不同人名执行对应专属逻辑
                if name.lower() == "sudar":
                    print(f"找到目标人员信息(Sudar专属逻辑处理):\n{person}")
                    # 这里可以加Sudar专属的额外操作,比如打印他的项目经验、技能栈等
                elif name.lower() == "other_person":
                    print(f"找到目标人员信息(Other Person专属逻辑处理):\n{person}")
                    # 这里加Other Person的专属操作,比如显示他负责的产品列表、待办事项等
                else:
                    print(f"找到目标人员信息:\n{person}")
                return
        # 如果没找到匹配的人员
        print(f"未找到名为'{name}'的人员")

然后你可以这样使用这个类:

# 创建人员目录实例
directory = PersonDirectory()

# 搜索sudar
directory.search_by_name("sudar")

# 搜索other_person(支持大小写不敏感匹配)
directory.search_by_name("Other_Person")

# 搜索不存在的名字
directory.search_by_name("bob")

更灵活的扩展方式

如果以后需要添加更多人员的专属逻辑,用字典映射处理函数会更清晰,Python 3.6完全支持这种写法:

class PersonDirectory:
    def __init__(self):
        # 用字典存储人员信息,查找更高效
        self.people = {
            "sudar": Person("sudar", "资深工程师", "后端开发部"),
            "other_person": Person("other_person", "产品经理", "产品部")
        }
        # 定义各人员的专属处理逻辑
        self.search_handlers = {
            "sudar": self._handle_sudar,
            "other_person": self._handle_other_person
        }

    def _handle_sudar(self, person):
        print(f"【Sudar专属展示】\n{person}\n额外信息:曾主导3个核心后端项目,精通Python和Go")

    def _handle_other_person(self, person):
        print(f"【Other Person专属展示】\n{person}\n额外信息:负责公司核心产品的Roadmap规划,对接跨部门需求")

    def search_by_name(self, name):
        name_lower = name.lower()
        if name_lower in self.people:
            person = self.people[name_lower]
            # 调用对应的处理函数,没有专属逻辑就用默认展示
            handler = self.search_handlers.get(name_lower, lambda p: print(f"找到人员信息:\n{p}"))
            handler(person)
        else:
            print(f"未找到名为'{name}'的人员")

这样的写法不仅结构清晰,后续加新的人员和专属逻辑也非常方便,完全适配Python 3.6的语法特性。

内容的提问来源于stack exchange,提问作者Sudar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:37:11