单个类内的Python函数调用

时间:2018-08-21 05:41:08

标签: python

我希望这两个函数都在同一个类数学中。使用数学 类对象。我可以调用这两个函数,我也希望fibonacii系列出现在数组中。

#fibonacii series of a no using recursion
def fib(n):
    if n<=1:
        return n
    else:
        return (fib(n-1) + fib(n-2))

n = int(input("Enter number of terms:"))
print("Fibonacii series are: ")
for i in range (n):
    print(fib(i))

#for factorial
n=int(input("Enter the no to find factorial: "))
def facts(n):
    if n == 0 or n == 1:
        return 1
    if n>=1:
       return n * facts(n-1)
print("The facatorial of a given no",str(n),"is:",facts(n))

1 个答案:

答案 0 :(得分:0)

我建议您使用静态方法创建一个类:

class Fibonacii(object):
   def __init__(self):
      # this is the constructor you can initialize stuff here if required
      # if not just pass it like in this example
      pass

   @staticmethod
   def fib(n):
    if n<=1:
        return n
    else:
        return (Fibonacii.fib(n-1) + Fibonacii.fib(n-2))

   @staticmethod
   def facts(n):
    if n == 0 or n == 1:
        return 1
    if n>=1:
       return n * Fibonacii.facts(n-1)

静态方法的优点是可以在不创建该类对象的情况下使用它们。因此,您可以在脚本中执行以下操作:

if __name__ == "__main__":
   n = int(input("Enter number of terms:"))
   print("Fibonacii series are: ")
   for i in range (n):
       print(Fibonacii.fib(i))

   #for factorial
   n=int(input("Enter the no to find factorial: "))
   print("The facatorial of a given no",str(n),"is:",Fibonacii.facts(n))

main之后的部分是正在执行的脚本部分(如果它是主脚本)。注意,该类从不用于创建对象。但这是用来保存您的两个函数的,并且可以用来调用它们。