我在做书上的事。 这样的例子:
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
下,则可以正常工作。
我不知道如何使def
低于class
,请帮忙!
答案 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):