初学者Python类 - 使用用户输入更改属性值

时间:2016-02-08 15:39:48

标签: python class user-input

我刚学习Python课程,过去一天我被困在下面。

我正在尝试使用用户输入(来自main()函数)来更改类中属性的值。

我已经使用了@property和@name.setter方法,允许您更改私有属性的值。

但是,我试图找出如何使用用户输入来更改非私有属性的值。

我想出了下面但它似乎没有用。运行程序后,属性的值保持不变。你有什么想法吗?

    class Person(object):

    def __init__(self, loud, choice = ""):
        self.loud = loud
        self.choice = choice

    def userinput(self):
        self.choice = input("Choose what you want: ")
        return self.choice

    def choiceimpl(self):
        self.loud == self.choice

    def main():

        john = Person(loud = 100)

        while True:

            john.userinput()

            john.choiceimpl()

            print(john.choice)
            print(john.loud)

    main()

3 个答案:

答案 0 :(得分:4)

choiceimpl ==您正在使用=,您应该使用 var content []string err := json.NewDecoder(c.Request.Body).Decode(&content) if err != nil { log.Fatal("JSON decode error: ", err) } defer c.Request.Body.Close() fmt.Println(content)

答案 1 :(得分:0)

如前所述,您使用==而不是=进行比较。 另外,您在userinput中返回self.choice作为返回值,但从不使用它,因为您将self.choice设置为等于输入。

更短的例子:

class Person:
    def __init__(self, loud):
        self.loud = loud
    def set_loud(self):
        self.loud = input("Choose what you want: ")
def main():
    john = Person(100)
    while True:
        john.set_loud()
        print(john.loud)
main()

答案 2 :(得分:0)

1)更改:'=='(比较运算符)为'='(分配)

2)内部课程: def choiceimpl(self,userInp): self.loud = self.userInp

3)课外

personA = Person(loud)                         # Create object
userInp = raw_input("Choose what you want: ")  # Get user input
personA.choiceimpl(userInp)                    # Call object method