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

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

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

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

我的问题是,在现实生活中,哪种方法会更好地扩展(即更可读、更容易调试),它们可能像15个方法,只调用一个能发挥所有魔力并得到结果的方法更好吗?还是在主方法中逐个调用方法更好,我有时发现自己编写程序的第一种方式是只调用一个方法,而类处理其他所有事情。这两个程序的速度有什么不同吗,哪一个更快?

函数应该按照他们说的去做。有一个名为capitalize()的函数去调用一个函数来打印、提示和收集输入是令人困惑的。

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

你的班级应该保留这些数据。这就是物体的全部意义。Main可以调用函数,但不应该有数据。这些单词本应存储在类中。

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

最新更新