类方法中的“自我”

Mik*_*kki 1 python methods class self

我正在一个创建字典的类中定义一个方法。这本字典只是给字母表中的每个字母一个值。因此该方法不会操作该类的任何实例。self在这种情况下,我是否需要将其作为方法的参数?

def build_shift_dict(self, shift):
    import string
    low = string.ascii_lowercase*2
    up = string.ascii_uppercase*2
    punc = list(" !@#$%^&*()-_+={}[]|\:;'<>?,./\"")
    shift_dict = {}

    for i in low[:26]:
        shift_dict[i] = low[low.index(i) + shift]

    for i in up[:26]:
        shift_dict[i] = up[up.index(i) + shift]

    for i in punc:
        shift_dict[i] = i

    return shift_dict
Run Code Online (Sandbox Code Playgroud)

tde*_*ney 5

不,您可以将其设为静态方法

@staticmethod
def build_shift_dict(shift):
    ... do the things
Run Code Online (Sandbox Code Playgroud)