-3

我正在做一些书上的前任。这样的例子:

class Worker:
    def __init__(self, name, pay):
        self.name=name
        self.pay=pay
    def lastName(self):
        return self.name.split()[-1]
    def giveRaise(self, percent):
        self.pay*=(1.0+percent)

这是我在使用 IDLE 时得到的:

class Worker:
    def __init__(self, name, pay):
        self.name=name
        self.pay=pay
        def lastName(self):
            return self.name.split()[-1]
        def giveRaise(self, percent):
            self.pay*=(1.0+percent)

正如你所看到def的,在我的情况下移动更正确。后来当我添加bob=Worker('Bob Smith', 50000), 并尝试让bob.lastName()我出错时。但是,如果我复制第一个示例,它在哪里def可以class工作。我不知道如何制作defclass请帮助!

4

1 回答 1

0

缩进在python中非常重要。在 C、JAVA 等其他语言中,我们使用大括号来绑定属于函数或类的代码。在python中没有大括号。在 python 中,如果一个类的方法有 4 个空格的缩进,那么所有其他方法应该有 4 个空格的缩进。在您编写到 IDLE 的代码中,缩进是不正确的lastNamegiveRaise哪些是类方法,应该具有相同的缩进__init__

不正确的缩进

 class Worker:
        def __init__(self, name, pay):

            def lastName(self):

            def giveRaise(self, percent):

正确的缩进

 class Worker:
    def __init__(self, name, pay):
        pass          
    def lastName(self):
        pass
    def giveRaise(self, percent):
        pass
于 2018-12-09T17:20:07.800 回答