您的位置:首页 > 编程语言 > Python开发

关于python的类

2015-10-19 22:12 495 查看
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!!"


这样写就又可以输出正确的结果了:这是因为在类的内部定义中,所有以双下划线开始的名字都被翻译成前面加上单下划线和类名的形式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: