我是面向对象编程的新手。这是python 3。 让我们举一些示例代码:
class MyClass:
def __init__(self,a=1,b=2):
self.a=a
self.b=b
def function1(self):
c.self=salf.a/self.b + 5
return(c.self)
当我从MyClass调用一个方法时。即:
MyClass.function1()
它返回: NameError:name' self'没有定义。
我理解,如果我将代码初始化为:
class MyClass(object):
code etc...
如果我把它放好:
somevariable=MyClass; somevariable.function1()
它有效......我不知道为什么会这样。
非常感谢你!
答案 0 :(得分:1)
您必须创建班级的对象:
class MyClass:
def __init__(self,a=1,b=2):
self.a=a
self.b=b
def function1(self):
self.c=self.a/self.b + 5
return(self.c)
print(MyClass().function1())
MyClass()
创建一个可用于访问类中属性的对象。
一般情况:
m = MyClass()
print(m.function1())