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

时间:2015-04-18 04:32:32

标签: python class python-3.x instance

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

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()

这个程序在类体中有3个方法,然后在main函数中创建一个新实例,只调用了capitalize方法,并且该类完成了整个魔术并打印出一个大写的put来自用户整个主要方法看起来很干净

    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()

第二个程序做同样的事情,但它在类体中有更少的方法和main方法中的更多方法,它调用类中的方法并使用返回的结果,然后实际发出最终的print语句在主方法中,与第一个程序不同,认为当程序扩展和增长时,主要方法看起来会变得非常混乱

我的问题是这种方法在现实生活中会更好地扩展(即更易读,更容易调试),它们可能就像15种方法一样,只需调用一个能够完成所有魔法的方法结果或在main方法中逐个调用方法,我有时发现自己编写程序的第一种方式,我只调用一个方法,类处理其他一切,这两个程序之间的速度是否有任何差异,哪一个会更快吗?

1 个答案:

答案 0 :(得分:2)

功能应该按照他们所说的去做。让一个名为capitalize()的函数去调用函数来打印并提示和收集输入是很困惑的。

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

你的班级应该保留数据。这是对象的重点。 Main可以调用函数,但它不应该有数据。这些单词应该存储在课堂上。

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