Lea*_*ode 3 python constructor
我通过调用构造函数中的函数运行下面的代码
第一 -
>>> class PrintName:
... def __init__(self, value):
... self._value = value
... printName(self._value)
... def printName(self, value):
... for c in value:
... print c
...
>>> o = PrintName('Chaitanya')
C
h
a
i
t
a
n
y
a
Run Code Online (Sandbox Code Playgroud)
我再次运行这个,我得到了这个
>>> class PrintName:
... def __init__(self, value):
... self._value = value
... printName(self._value)
... def printName(self, value):
... for c in value:
... print c
...
>>> o = PrintName('Hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in __init__
NameError: global name 'printName' is not defined
Run Code Online (Sandbox Code Playgroud)
我可以不在构造函数中调用函数吗?并且在执行类似代码时有偏差吗?
注意:我忘了使用self(ex:self.printName())调用类的本地函数.为这篇文章道歉.
Fal*_*rri 11
您需要调用,self.printName因为您的函数是属于PrintName类的方法.
或者,由于您的printname函数不需要依赖于对象状态,因此您可以将其设置为模块级函数.
class PrintName:
def __init__(self, value):
self._value = value
printName(self._value)
def printName(value):
for c in value:
print c
Run Code Online (Sandbox Code Playgroud)