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

如何将用户输入的日期作为Python类的位置参数使用?

解决方案

以下是修正后满足需求的代码,实现了实例化无需手动传参、入职日期通过用户输入获取且格式不限的功能:

修改后的代码

import datetime

class JoiningDetails:
    def __init__(self):
        # 初始化时获取用户名输入
        self.name = input("Enter the name : ")
        # 先将入职日期置为空,后续通过getDoJ方法赋值
        self.doj = None
        
    def output(self):
        # 输出员工的姓名与入职日期
        print(f"Employee Name: {self.name}")
        if self.doj:
            print(f"Date of Joining: {self.doj}")
        else:
            print("Date of Joining has not been entered.")
        
    def getDoJ(self):
        # 获取用户输入的入职日期,支持任意格式
        self.doj = input("Enter the date of Joining of the employee (any format):\t")

# 按期望逻辑执行
emp = JoiningDetails()
emp.getDoJ()
emp.output()

关键改动说明

  • 调整__init__方法:移除了原有的位置参数要求,改为无参构造函数,实例化时直接调用JoiningDetails()即可。
  • 替换类变量为实例属性:原代码中的Name类变量会导致不同实例间数据混淆,改为self.name和self.doj实例属性,确保每个员工实例独立存储自身信息。
  • 修正方法逻辑:
    • 在__init__中直接获取用户名输入,初始化入职日期为None。
    • getDoJ方法将用户输入的日期赋值给当前实例的self.doj属性,不再操作类变量。
    • output方法输出当前实例的属性值,避免了原代码中引用变量的错误。
  • 放宽日期格式限制:修改提示文案,允许用户输入任意格式的日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:05:33