【发布时间】:2019-05-30 10:05:42
【问题描述】:
定义一个类,该类将使用getstring() 输入字符串,printstring() 将其转换为大写,并使用另一个函数__init__
class a:
def __init__(self,b,c):
self.b=b
self.c=c
def getstring(self):
print "Please enter input"
self.x=raw_input()
return x
def printstring(self):
y=self.x.upper()
return y
def sum(self):
c=self.c+self.b
return c
d=a(23,53)
d.getstring()
d.printstring()
结果是输入字符串应该被转换为大写。此代码正在运行,但它不应该因为 x 没有全局范围。
另一个奇怪的事情是,如果在上面的代码中,调用了“sum”函数,那么输入字符串不会转换为大写。它只会打印输入中给出的字符串并给出总和。
【问题讨论】:
-
self.x具有类范围,因此它与类对象一起使用。无论您使用self访问什么都具有类范围。它们可用于类对象 -
但是如果我调用 sum 为什么它不起作用,如果我包含另一行 - d.sum() 那么它不会转换为大写
-
因为转换成
uppercase是写在printstring里面而不是sum里面 -
我的意思是,如果我调用 getstring、printstring 和 sum,那么大写就不起作用了。
-
它不会那样工作。至少您必须在
sum内致电printstring
标签: python python-2.7 class