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

如何在Python类中定义无需self参数的输入处理函数?

Python类中定义无需实例化调用的方法

你遇到的问题是因为默认情况下,类中定义的方法属于实例方法,这类方法必须接收self参数(代表类的实例),所以直接调用会报错。要在类里定义不需要实例化就能调用的方法,有两种常用方式:

1. 使用@staticmethod装饰器(推荐)

静态方法不需要绑定到类或实例,不需要self或cls参数,可以直接通过类名调用。修改后的代码如下:

class PyInput:
    @staticmethod
    def inputString(prompt = "Enter a string: >>> "):
        userInput = input(prompt)
        return userInput

调用方式:

result = PyInput.inputString()
# 也可以自定义提示语
result = PyInput.inputString("请输入内容:>>> ")

2. 使用@classmethod装饰器(适合需要访问类属性的场景)

类方法需要接收cls参数(代表类本身),如果你的方法后续需要访问类的属性或调用其他类方法,可以用这个装饰器。示例代码:

class PyInput:
    default_prompt = "Enter a string: >>> "
    
    @classmethod
    def inputString(cls, prompt = None):
        if prompt is None:
            prompt = cls.default_prompt
        userInput = input(prompt)
        return userInput

如果你的需求只是单纯封装输入功能,不需要和类的其他属性/方法交互,@staticmethod是最简洁的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 00:20:44