我刚学习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()
答案 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