Python定义一个类型转换的类,该类中有8个方法,分别是字符串转列表,字符串转元组,字符串转集合,列表转元组,列表转集合,元组转集合,列表转字符串,元组转字符串

在pycharm中定义一个类型转换的类,该类中有8个方法,分别是字符串转列表,字符串转元组,字符串转集合,列表转元组,列表转集合,元组转集合,列表转字符串,元组转字符串,在转换过程中,所有的参数通过init定义,init进行类型判断,如果是整型,字典,浮点数则需要打印提示

img

我不是很明白题意,但可以这样实现:

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)