怎么了?

时间:2018-12-09 16:34:50

标签: python python-3.x

我在做书上的事。 这样的例子:

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()时,我得到了一个错误。但是,如果我复制第一个示例,其中defclass下,则可以正常工作。 我不知道如何使def低于class,请帮忙!

1 个答案:

答案 0 :(得分:-1)

缩进在python中非常重要。在其他语言(例如C,JAVA)中,我们使用花括号来绑定属于函数或类的代码。在python中没有括号。 例如比较下面的Java代码...

export const Run = functions.database.ref("PATH").onUpdate((snap, 
context) =>
{
const Collection = [];
ref.child('PATH2').once('value', function(lambda) 
{
    lambda.forEach((snap) => 
    {
        if (snap.val().state) 
        {
            Collection.push(snap.key);
        }
        return false; //since I use typescript I must return a boolean with foreach loop
    });
}).then(() => 
{
for (let i = 0; i < Collection.length; i++) 
{
    const arg = Collection[i];

        if(Verify(arg))
        {
            break;
        }

        Function_A(arg)
        .then(() => {
            return Function_B(arg)
        })
        .then(() => {
            return Function_C(arg);
        })
        .then(() => {
            return Function_D(arg);
        })
        .then(() => {
            return Function_E(arg)
        })
        .then(() => {
            return Function_F(arg)
        })
        .then(() => {
            return Function_G(arg)
        })
}
})
});

带有python代码。

public class MyClass{
public int foo(){
    return 0;
    }
public int foo2(){
         return 1; //Indentation does not matter. 
}
}

在Java中,class MyClass: def foo(): return 0 def foo2(): return 1 中的代码无需换行即可编写新行。 在python中,如果一个类的方法具有4个空格的缩进,则所有其他方法都应具有4个空格的缩进。 在您写入IDLE的代码中,缩进对于{}lastName是类方法,并且缩进与giveRaise

相同,是不正确的

错误的提示

__init__

正确的提示

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

            def lastName(self):

            def giveRaise(self, percent):