关于python的类

来源:互联网 发布:java中map 编辑:程序博客网 时间:2024/06/02 21:46
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.namefoo = 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.namefoo = 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.namefoo = Person()bar = Person()foo.setName("Linda")bar.setName("Hellen")foo._Person__greet()bar._Person__greet()print "Done!Tada!!"

这样写就又可以输出正确的结果了:这是因为在类的内部定义中,所有以双下划线开始的名字都被翻译成前面加上单下划线和类名的形式。

0 0