我是python编程的新手,所以我没有收到关于我的错误的信息。请帮助我更正此代码。
我试图找出问题所在,但作为一名新程序员,我没有得到
class students:
def __init(self,name,age):
self.name = name
self.age = age
def myfunc(self):
print("Hello i am " + self.name)
p1 = students("Sumit", 28)
p1.myfunc()
它不应该给出错误,但是它显示错误,即对象无法通过类似的操作。我不知道怎么了
答案 0 :(得分:2)
您的构造函数(__init__
)的每一侧应具有两个uderscore:
class students:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello i am " + self.name)
p1 = students("Sumit", 28)
p1.myfunc()
许多python'internals'遵循这种做法,在每边被两个下划线包围。例如,您可以使用__dict__
关键字访问某个类或命名空间中的变量。
print(p1.__dict__) # Will print {'name': "Sumit", 'age': 28}
答案 1 :(得分:0)
在init函数之后,您缺少双下划线。应该是下面的样子
class students:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello i am " + self.name)
p1 = students("Sumit", 28)
p1.myfunc()
这称为魔术方法。 Python提供了这种方法来将其用作运算符重载。