selfPython 中这个词的目的是什么?我理解它指的是从该类创建的特定对象,但我不明白为什么它明确需要作为参数添加到每个函数.为了说明,在Ruby中我可以这样做:
class myClass
def myFunc(name)
@name = name
end
end
Run Code Online (Sandbox Code Playgroud)
我很容易理解.但是在Python中我需要包括self:
class myClass:
def myFunc(self, name):
self.name = name
Run Code Online (Sandbox Code Playgroud)
谁能跟我说说这个?这不是我在(无可否认的有限)经历中遇到的事情.
为什么cls有时self在Python类中使用而不是作为参数?
例如:
class Person:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
@classmethod
def from_fullname(cls, fullname):
cls.firstname, cls.lastname = fullname.split(' ', 1)
Run Code Online (Sandbox Code Playgroud) 我正在一个创建字典的类中定义一个方法。这本字典只是给字母表中的每个字母一个值。因此该方法不会操作该类的任何实例。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)