如何解决此OOP错误?

ireshan pathirana

我试图了解python oop。但这对我来说并不容易。因此,我为以下程序(ex.1)编写了python OOP程序(ex.2),但它无法正常工作并出现以下错误。

例1

def factorial(n):  
    num = 1   
    while n >= 1:  
        num = num * n  
        n = n - 1  
    return num   

f = factorial(3)  
print f # 6 

例2

class factorial:

    def __init__(self):


      self.num = 1

    def fact(self,n):
        while n>=1:
            num = self.num * n
            n = n-1
        return num

f = factorial()
ne= factorial.fact(3)
print(ne)

错误

Traceback (most recent call last):
  File "F:/python test/oop test3.py", line 13, in ne= factorial.fact(3)
TypeError: fact() missing 1 required positional argument: 'n'
帕德拉克·坎宁安(Padraic Cunningham)

使用您创建实例来调用该方法:

f = factorial() # creates instance of the factorial class
ne = f.fact(3)

或使用类本身进行调用而无需分配:

ne = factorial().fact(3) # < parens ()
print(ne)

您还应该使用一个错误,self.num否则您将始终得到1作为答案,因此:

class Factorial: # uppercase
    def __init__(self):
        self.num = 1
    def fact(self, n):
        while n >= 1:
            self.num = self.num * n # change the attribute self.num
            n -= 1 # same as n  = n - 1
        return self.num

如果不返回,则方法将返回None,但仍将增加self.num,因此,如果您不想返回但想在调用该方法后查看self.num的值,则可以直接访问该属性:

class Factorial:
    def __init__(self):
        self.num = 1

    def fact(self, n):
        while n >= 1:
            self.num = self.num * n
            n -= 1

ne = Factorial()

ne.fact(5) # will update self.num but won't return it this time
print(ne.num) # access the attribute to see it 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何解决此OOP错误?

来自分类Dev

如何解决oop错误

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此错误:分段错误?

来自分类Dev

如何解决此错误--dbWriteTable()

来自分类Dev

如何解决此ExpectationNotMetError错误

来自分类Dev

如何解决此“ OutOfBoundaryException”错误?

来自分类Dev

在MiniZinc中如何解决此错误?

来自分类Dev

如何解决此rstrip属性错误?

来自分类Dev

如何解决此PHP通知错误?

来自分类Dev

如何解决此错误并安装cocoapods?

来自分类Dev

如何解决此ExpectationNotMetError错误

来自分类Dev

您如何解决此错误

来自分类Dev

如何解决此属性错误?

来自分类Dev

如何解决此Eclipse错误?

来自分类Dev

如何解决此验证错误?

来自分类Dev

如何解决此httpProvider错误?

来自分类Dev

如何解决此linphone $ make错误?

来自分类Dev

如何解决此JTextArea格式错误?

来自分类Dev

此查询中的错误:如何解决?

来自分类Dev

如何解决此升级错误?

来自分类Dev

如何解决此错误?“ assign”附近的语法错误

来自分类Dev

如何解决有此makeHttpRequest错误的错误?

来自分类Dev

在ubuntu上安装devstackkg时如何解决此错误

来自分类Dev

如何解决magento1.9.1.0此错误

来自分类Dev

从Gradle发布到Nexus时如何解决此错误

来自分类Dev

如何解决Java 8中的此错误?