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

在OOP中能否不创建对象打印日期时间?及__init__返回值报错排查

问题解答

问题1:面向对象编程(OOP)中,能否不创建对象就打印日期和时间?

完全可以。无需自定义类或创建对象,直接使用Python内置的datetime模块就能实现:

import datetime
# 获取当前日期并格式化输出
current_date = datetime.date.today()
print(current_date.strftime('todays date: %d %B').lower())

上述代码直接调用模块方法,无需实例化自定义对象,即可输出类似'todays date:26 june'的内容。

问题2:代码报错__init__() should return None, not int的原因是什么?

报错核心原因

Python中类的__init__是构造初始化方法,它的唯一作用是初始化实例属性,语法规定必须返回None,不能返回任何其他类型的值(比如你代码里返回的整数x),这就是触发报错的直接原因。

修正后的代码示例

如果要实现输出'todays date:26 june'的需求,可修改代码如下:

import datetime

class Date:
    def __init__(self, data):
        self.data = data
        # 初始化时仅获取日期,不返回值
        self.current_date = datetime.date.today()
    
    def print_formatted_date(self):
        # 单独用方法处理格式化与输出
        formatted_date = self.current_date.strftime('todays date: %d %B').lower()
        print(formatted_date)

y = Date('data')
y.print_formatted_date()

其实如果只是输出日期,甚至不需要自定义类,直接调用datetime模块就能完成需求。


内容的提问来源于stack exchange,提问作者MOHAMMED TASHFIQUL ISLAM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:12:34