内部 class 方法与 python 中的实例方法

Inner class methods vs instance methods in python

我写了一个简单的程序,接受用户的输入并将其大写,显然这可以通过不同的方式完成

class example():

    def say_it(self):
        result = input('what do you wanna say to the world')
        return result

    def get_result(self):
        res = self.say_it()
        return res

    def capitalize(self):
        res = self.get_result()
        res = res.upper()
        print(res)


def main():
    Ex = example()
    res = Ex.capitalize()

if __name__ == '__main__': main()

这个程序在 class 主体中有 3 个方法,然后在 main 函数中创建一个新实例,只调用 capitalize 方法,class 完成整个魔术并打印出来用户输入的大写字母使整个主要方法看起来非常干净

    class example():
        def say_it(self):
            result = input('what do you wanna say to the world')
            return result

        def capitalize(self, words):
            words = words.upper()
            return words


    def main():
        Ex = example()
        res = Ex.say_it()
        final_result = Ex.capitalize(res)
        print(final_result)

    if __name__ == '__main__': main()

第二个程序做同样的事情,但它在 class 主体中的方法较少,而在 main 方法中的方法较多,它调用 class 中的方法并处理返回的结果,然后最后的打印语句实际上是在main方法中发出的,不像第一个程序,认为当程序扩展和增长时main方法会变得非常混乱

我的问题是,哪种方法在现实生活中会更好地扩展(即更具可读性,更容易调试),在现实生活中它们可能有 15 种方法,只调用一个完成所有魔法的方法会更好吗并在 main 方法中一个一个地获取结果或调用方法,有时我发现自己编写程序的第一种方式是我只调用一个方法,而 class 处理其他所有事情,两者之间的速度是否也有差异这两个程序,哪个会更快?

函数应该言出必行。令人困惑的是有一个名为 capitalize() 的函数去调用一个函数来打印、提示和收集输入。

一个函数不应该只调用另一个函数而不提供任何值。 get_result() 函数没有用处。调用 say_it() 会产生相同的结果。

您的 class 应该保留数据。这就是对象的全部意义所在。 Main 可以调用函数,但它不应该有数据。单词本应存储在 class.

函数调用者之间没有明显的性能差异。