class Person:
def setName(self,name):
self.name = name
def getName(self):
return self.name
def greet(self):
print "Hello world!My name is %s" % self.name
foo = Person()
bar = Person()
foo.setName("Linda")
bar.setName("Hellen")
foo.greet()
bar.greet()
print "Done!Tada!!"
让方法或者属性变为私有:class Person:
def setName(self,name):
self.name = name
def getName(self):
return self.name
def greet(self):
print "Hello world!My name is %s" % self.name
foo = Person()
bar = Person()
foo.setName("Linda")
bar.setName("Hellen")
foo.greet()
bar.greet()
print "Done!Tada!!"
运行时结果:
AttributeError: Person instance has no attribute '__greet'
class Person:
def setName(self,name):
self.name = name
def getName(self):
return self.name
def __greet(self):
print "Hello world!My name is %s" % self.name
foo = Person()
bar = Person()
foo.setName("Linda")
bar.setName("Hellen")
foo._Person__greet()
bar._Person__greet()
print "Done!Tada!!"
这样写就又可以输出正确的结果了:这是因为在类的内部定义中,所有以双下划线开始的名字都被翻译成前面加上单下划线和类名的形式。
版权声明:本文为u014328357原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。