在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
相关产品推荐
相关产品推荐

