用Python编写的非常简单的类(源代码如下)。在
在构造obj1 = myClass(12)
并调用类函数obj1.printInfo()之后,我得到一个错误-AttributeError: type object 'myClass' has no attribute 'arg1'
问题的根源是什么??在
class myClass(object):
def __init__(self, arg1, arg2 = 0):
self.arg1 = arg1
self.arg2 = arg2
def printInfo (self):
print myClass.arg1, myClass.arg2
obj1 = myClass(12)
obj1.printInfo()
谢谢!在
您要使用将printInfo(self)的主体替换为:
self在这里的用法不是指定作用域,因为它有时在Java中使用(我的班。这个)或者用PHP。在此函数中,self实际上是包含arg1和arg2的对象。Python以这种方式非常明确。在前面的方法中,您为self分配了arg1和arg2,因此应该希望arg1和arg2脱离self。在
关于第二个问题,如果您想要一个“类”函数(即静态方法),那么您仍然需要对obj1的引用来访问它的属性。例如:
^{pr2}$如果有机会,请务必阅读PEP8:)
脑屁,是吗?将
myClass.arg1
切换到self.arg1
:你可以这样做:
相关问题 更多 >
编程相关推荐