创建具有所需格式的间隔 class
Create an Interval class with desired format
我正在尝试创建一个名为 Interval 的 class,如果给定 1 个参数 a,它会以 [a,a] 格式创建它,如果给定 2 个参数 a 和 b,它会在格式 [a,b]。看下面代码
class Interval():
def __init__(self,left,*args):
if args:
self.left=left
self.right=args
else:
self.left=left
self.right=left
def __repr__(self):
return("[{},{}]".format(self.left,self.right))
现在,当我只有一个参数时,它会以所需的格式打印出来,但是如果有 2 个参数,我会在括号内得到一个括号,见下文:
a = Interval(1)
b = Interval(2,4)
print (a)
print (b)
打印出来:
[1,1]
[2,(4,)]
为什么会这样?感谢任何帮助,谢谢。
'args' 是一个元组,这就是你得到括号的原因。
class Interval():
def __init__(self,left,*args):
if args:
self.left=left
self.right=args[0]
else:
self.left=left
self.right=left
def __repr__(self):
return("[{},{}]".format(self.left,self.right))
为了尽可能通用,你可以试试这个:
class Interval():
def __init__(self,left,*args):
if args:
self.left=left
self.right=args
else:
self.left=left
self.right=left
def __repr__(self):
return("[{},{}]".format(self.left,','.join(map(str, self.right))))
i = Interval(4, 4)
print(i)
输出:
[4,4]
我正在尝试创建一个名为 Interval 的 class,如果给定 1 个参数 a,它会以 [a,a] 格式创建它,如果给定 2 个参数 a 和 b,它会在格式 [a,b]。看下面代码
class Interval():
def __init__(self,left,*args):
if args:
self.left=left
self.right=args
else:
self.left=left
self.right=left
def __repr__(self):
return("[{},{}]".format(self.left,self.right))
现在,当我只有一个参数时,它会以所需的格式打印出来,但是如果有 2 个参数,我会在括号内得到一个括号,见下文:
a = Interval(1)
b = Interval(2,4)
print (a)
print (b)
打印出来:
[1,1]
[2,(4,)]
为什么会这样?感谢任何帮助,谢谢。
'args' 是一个元组,这就是你得到括号的原因。
class Interval():
def __init__(self,left,*args):
if args:
self.left=left
self.right=args[0]
else:
self.left=left
self.right=left
def __repr__(self):
return("[{},{}]".format(self.left,self.right))
为了尽可能通用,你可以试试这个:
class Interval():
def __init__(self,left,*args):
if args:
self.left=left
self.right=args
else:
self.left=left
self.right=left
def __repr__(self):
return("[{},{}]".format(self.left,','.join(map(str, self.right))))
i = Interval(4, 4)
print(i)
输出:
[4,4]