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

面向对象编程中方法输入值的最佳实践:外部传参还是内置输入?

面向对象编程中输入方法值的最佳实践

作为编程新手,你提到的两种写法核心区别在于是否遵循单一职责原则——这也是OOP里的关键设计思路,下面直接拆解两种方式的优劣:

第一种:外部传参的写法

def add(number_1, number_2):
    return number_1 + number_2

number_1 = float(input("Enter the first number: "))
number_2 = float(input("Enter the second number: "))

print("Sum =", add(number_1, number_2))

这种写法的优势很明显:

  • 职责清晰:add函数只干一件事——计算两个数的和,输入获取、结果输出都放在函数外面,完全分离。
  • 复用性强:不管后续需要从文件读数字、从接口拿数据,还是用其他计算得到的数值,都能直接调用add函数,不用改函数内部代码。
  • 测试方便:写测试的时候,直接传add(2,3)就能验证结果是5,不用模拟用户输入或者捕获打印内容。

第二种:内部处理输入输出的写法

def add():
    number_1 = float(input("Enter the first number: "))
    number_2 = float(input("Enter the second number: "))

    print("Sum =", number_1 + number_2)

add()

这种写法的局限性很大:

  • 职责混乱:add既要管用户输入,又要管计算和打印,一旦需求变了(比如要把结果存到数据库,或者从文件读数字),你得彻底修改add函数的逻辑。
  • 无法复用:这个函数只能用于“用户输入两个数然后打印和”的场景,没法单独拿加法逻辑去做别的事。
  • 测试麻烦:要验证加法是否正确,得模拟用户输入,还要检查打印的内容,比第一种写法的测试成本高很多。

总结

优先选择第一种分离输入、逻辑、输出的写法。在OOP中,类的方法也应该遵循这个思路:让类的方法专注于核心业务逻辑,输入输出交给专门的方法或模块处理,这样你的代码会更清晰、更灵活,也更容易维护和扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:55:15