在pycharm中定义一个类型转换的类,该类中有8个方法,分别是字符串转列表,字符串转元组,字符串转集合,列表转元组,列表转集合,元组转集合,列表转字符串,元组转字符串,在转换过程中,所有的参数通过init定义,init进行类型判断,如果是整型,字典,浮点数则需要打印提示
我不是很明白题意,但可以这样实现:
class Type:
def __init__(self, arg):
self.arg = arg
arg_type = type(arg)
if arg_type == int:
print("提示:整数")
elif arg_type == dict:
print("提示:字典")
elif arg_type == float:
print("提示:浮点数")
def str_to_list(self):
assert type(self.arg) == str
return list(self.arg)
def str_to_tuple(self):
assert type(self.arg) == str
return tuple(self.arg)
def str_to_set(self):
assert type(self.arg) == str
return set(self.arg)
def list_to_tuple(self):
assert type(self.arg) == list
return tuple(self.arg)
def list_to_set(self):
assert type(self.arg) == list
return set(self.arg)
def tuple_to_set(self):
assert type(self.arg) == tuple
return set(self.arg)
def list_to_str(self):
assert type(self.arg) == list
return str(self.arg)
def tuple_to_str(self):
assert type(self.arg) == tuple
return str(self.arg)
因为题目中规定了是由某种类型转换成某种类型,所以方法中进行了断言,如果不符合类型会抛出异常。这个过程非常的多余,不过为了题意也只能这样做了。
class to_type():
'''类型转换,字典,整型,浮点型不需要,要校验'''
def __init__(self,a):
if (type(a)==dict or type(a)==int) or type(a)==float:
print('类型不符合')
else:
self.a=a
def to_list(self):
if type(self.a)==list:
print('列表本身,不需要转')
else:
a=list(self.a)
return a
def to_tuple(self):
a=tuple(self.a)
return a
def to_str(self):
a=str(self.a)
return a
def to_set(self):
a=set(self.a)
return a
def lei_main(self):
q=self.to_list()
w=self.to_tuple()
e=self.to_str()
r=self.to_set()
return q,w,e,r
T=to_type((1,2,3))
U=T.lei_main()
print(T)
print(U)