我知道它的愚蠢問題,但我試圖掌握Python中OOP的概念。假設我想要寫階乘的程序程序形式,我會做這樣的事情Python中面向對象的例子
def factorial(n):
num = 1
while n >= 1:
num = num * n
n = n - 1
return num
f = factorial(3)
print f # 6
現在我想重寫OO方式相同的階乘的程序。我沒有得到如何使用對象和類編寫這個相同的功能。
class Factorial():
def fact(n):
num = 1
while n >= 1:
num = num * n
n = n - 1
return num
f = Factorial()
a = f.fact(3)
print a # TypeError: fact() takes exactly 1 argument (2 given)
我知道更確切地說功能方式使用lambda表達式和其他的東西可以做到這一點,但我正在學習面向對象的概念。我做錯了什麼?
真棒解釋,謝謝。 – ajkumar25
@ user3012137歡迎您:)如果可以幫助您,請考慮接受此答案http://meta.stackexchange.com/a/5235/235416 – thefourtheye