class  Programer(object):
    hobby = "Play computer"
    def __init__(self,name,age,weight):
        self.name = name
        self._age = age
        self.__weight = weight
    @classmethod
    def  get_hobby(cls):
        return cls.hobby
    @property
    def get_weight(self):
        return self.__weight
    def self_introduction(self):
        print "My name is %s \n I'm %d years old"%(self.name,self._age)
if __name__ == "__main__":
    programer = Programer("Albert",25,80)
    print dir(programer)
    print programer.__dict__
    print Programer.get_hobby()
    print programer.get_weight
    print programer.self_introduction()
简单的来说,最后一个结果None是 self_introduction()方法的返回值,也就是未显式的return 语句。
就好比你打印introduction时打印两次 当然有问题 去掉下面的print或者将上面的print改为return
去掉print
很简单 因为最后一个函数没有返回值 楼主你的基础太差了 多看看基础吧