错误:AttributeError:'powerOfTwo'对象没有属性'x'

时间:2019-10-11 10:59:10

标签: python

我正在尝试编写一个python程序,以检查正整数是否可以除以2,并使用类和函数返回false或true。我收到此错误:AttributeError:'powerOfTwo'对象没有属性'x'。您能帮我解决这个问题吗?

class powerOfTwo():

    def __init__(self, x):

        self.x = x

    def user(self):

        x = int(input("Enter a number: "))

    def check(self):

        if self.x == 1:

            return False

        elif (x > 0) and (x % 2 == 0):

            return True

        else:

            return False

a = powerOfTwo(5)

powerOfTwo().user()

powerOfTwo().check()

1 个答案:

答案 0 :(得分:1)

您检查2的幂的逻辑不正确。

尝试考虑值6的输出是什么?

您的代码也返回False作为值1,但是12的幂。


您可以执行以下操作:

class powerOfTwo():
    def __init__(self, x = 1):    # Provide a defaul value otherwise powerOfTwo().user() and powerOfTwo().check() will not work.
        self.x = x

    def user(self):               # Use self.x instead of x
        self.x = int(input("Enter a number: "))    

    def check(self):              # Use self.x instead of x
        if self.x == 0: 
            return False

        while self.x != 1:        # Updated the logic.
            if self.x % 2 != 0: 
                return False

            self.x = self.x // 2    

        return True