Я знаю его немой вопрос, но я пытаюсь понять концепции ООП в Python. Предположу, что я хочу написать программу для факториала в процессуальной формы, я бы что-то вроде этогоОбъектно-ориентированный пример в Python
def factorial(n):
num = 1
while n >= 1:
num = num * n
n = n - 1
return num
f = factorial(3)
print f # 6
Теперь я хочу переписать ту же факторную программу в ОО пути. Я не получаю, как писать эту же функцию с помощью объектов и классов.
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)
Я знаю, что это может быть сделано более точно в Functional способом, используя лямбды и другие вещи, но я учусь концепции объектно-ориентированного программирования. Что я делаю неправильно?
Удивительное объяснение, спасибо. – ajkumar25
@ user3012137 Добро пожаловать :) Пожалуйста, подумайте о принятии этого ответа, если он вам поможет http://meta.stackexchange.com/a/5235/235416 – thefourtheye