python - 打印使用函数调用存储的输入
问题描述
我已经使用from_input
函数来存储用户输入。我试图在 pythontutor 上可视化以下代码以及我可以从中理解的内容,输入值在函数返回__init__
后存储在函数中from_input
。
现在问题开始于何时random_fortune
被调用,我正在尝试打印已存储的名称。我已经尝试过self.name
,name
但它给出了错误。
import random
class Fortune:
def __init__(self, name, color, age):
self.name = name
self.color = color
self.age = age
@classmethod
def from_input(self):
name = input('Name: ')
color = input('Color: ')
age = int(input('Age: '))
return self(name,color,age)
@staticmethod
def random_fortune():
print("hi" + name)
random_no = random.randint(1, 9)
if random_no == 1:
print("you are in luck today")
else:
print("Bad Luck mate")
user = Fortune.from_input()
Fortune.random_fortune()
解决方案
您创建了一个 Fortune 对象但没有使用它。此外,您的 random_fortune 不是静态方法,因为您想在其中使用类属性“name”。所以这应该工作:
import random class Fortune:
def __init__(self, name, color, age):
self.name = name
self.color = color
self.age = age
@staticmethod
def from_input(self):
name = input('Name: ')
color = input('Color: ')
age = int(input('Age: '))
return Fortune(name,color,age)
def random_fortune(self):
print("hi" + self.name)
random_no = random.randint(1, 9)
if random_no == 1:
print("you are in luck today")
else:
print("Bad Luck mate")
user = Fortune.from_input()
user.random_fortune()
推荐阅读
- xamarin - 如何请求 Xamarin 表单的权限?
- json - 使用 groovy 脚本删除 JSON 数据中特定字段的双引号
- oracle - 更改 Oracle 序列对现有数据的影响,特别是“START WITH”值
- email - 纯文本电子邮件格式问题
- jenkins - Jenkins Pipeline Script 在变量后添加换行符
- amazon-web-services - AWS 放大,由于 mock-aws-s3 无法编译
- pdf - Cannot preview pdf-files larger than 2mb in chrome using FileReader
- firebase - I can't pull data from firebase to custom adapter Android
- linux - linux在while循环中从文件中读取;找不到命令
- apache-spark - Spark: which directory spark-submit will take to find --files?