Python的新功能,NameError:名称未定义(创建类后)

不知道为什么会这样或如何解决。我是Python的新手,感谢您的帮助。


class Sentence:

    def __init__(self, s):

        self.s= s

        x=s[:-1]

        self.L= list(x.split())

    def __getitem__(self,idx):

        return (self.L[idx])



s= Sentence('What a beautiful morning!')


getitem(s, 2)

NameError:未定义名称“ getitem”


慕运维8079593
浏览 316回答 2
2回答

肥皂起泡泡

从文档:object.__getitem__(self, key)要求对实施评估self[key]。...通过实施__getitem__,您可以使用方括号表示法来检索项目:s[2]或通过__getitem__显式调用(我不会这样做):s.__geitem__(2)

千万里不及你

Blender的回答很简单,但值得一提的是,我注意到您输入了:getitem(s, 2)看来您在想这样的事情:def __getitem__(self, x):                 |    |        ---------     |        |  ------------        v  vgetitem(s, 2)请注意,当您为一个类定义一个方法并将其self作为参数传递时,您正在将该类的实例(即,对象)指定为,这可能对我有好处,也可能无益self。因此,当您self.s = s说“将此对象的值设置s为参数s的值”时,就可以说。self不成为括号中的论点之一;您可以认为该论点是括号之外的特殊论点。def __getitem__(self, x):                 |    |------------------    ||             ---------v             vs.__getitem__(2)再次,正如Blender所说的,由于它__getitem__()是一个特殊功能(有点像下标的运算符覆盖),因此您不应该直接调用它-只是要提防!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python