<__main__ .myClass 对象0x000001CCDC46BD90>而不是预期的字符串输出



编写一个Python类,该类有两个方法get_Stringprint_Stringget_String应该接受来自用户的字符串,而print_String应该打印大写的字符串。

我的代码:

class myClass():
def __init__(self, userInput = input("What is your name? ")):
self.userInput = userInput
def get_string(userInput):
return userInput
def print_string(userInput):
output = userInput.upper()
return output
print(myClass())
Terminal:
What is your name? Anthony
<__main__.myClass object at 0x000001CCDC46BD90>

应该是:

ANTHONY

嗨,您可以稍微重新排列代码,以便方法读取输入,然后以所需格式打印出来:

class myClass():
def __init__(self):
self.userInput = None
def get_String(self):
self.userInput = input('What is your name? ')
def print_String(self):
print(self.userInput.upper())
# Instantiate the object
x = myClass()
# Read the name
x.get_String()
# Print the name
x.print_String()
# This prints:
#
# What is your name? Anthony
# ANTHONY

只需通过传递self参数来修改print_string方法,然后使用print_string()方法进行调用。

class myClass():
def __init__(self, userInput = input("What is your name? ")):
self.userInput = userInput
def print_string(self):
output = self.userInput.upper()
return output
print(myClass().print_string())

您似乎缺少Python:中的基本re:classes

  1. 赋值要求您使用get_string方法获取字符串,而不是在__init__期间
  2. print_string应该打印存储的字符串,它不应该要求用户传递新的字符串
  3. 您没有试图在代码中的任何位置将字符串转换为大写

这里有一个改进版本:

class MyClass:
def __init__(self):
self.name = None
def get_string(self):
self.name = input("What is your name? ")
def print_string(self):
print(self.name.upper())

my_object = MyClass()
my_object.get_string()
my_object.print_string()

相关内容

  • 没有找到相关文章