python面向对象笔记

来源:互联网 发布:大数据的主要来源于 编辑:程序博客网 时间:2024/05/19 03:22
class Employee:   '所有员工的基类'   **empCount = 0** #类变量,位于类内部方法外部,如Java中static变量,在所有该类实例化对象中公用   def __init__(self, name, salary):#self为该类实例    #self.name、self.salary为类的两个类似Java中public成员变量,可以“实例名.变量名“的形式访问      self.name = name        self.salary = salary      **Employee.empCount** += 1 #公用类变量的使用:类名.变量名   def displayCount(self):     print "Total Employee %d" % Employee.empCount   def displayEmployee(self):  print"Name:",self.name,",Salary:",self.salarypyCharm中.py测试:em=Employee("liu",20) #构造函数中self无需赋值 输出:_init_执行 em.displayCount()  #输出:Total Employee 2em.displayEmployee() #输出:Name: liu ,Salary: 20en=Employee("li",21) #输出:_init_执行en.displayCount()    #输出:Total Employee 3en.displayEmployee() #输出:Name: li ,Salary: 21print em.salary      #输出:20print en.salary      #输出:21print em.empCount    #输出:3print en.empCount    #输出:3修改函数:    def displayEmployee(self):        print "Name:",self.name,",Salary:",self.salary        if(hasattr(self,'age')):#若有属性age则输出            print self.age测试:em.age=12 #直接为实例em添加属性ageen.displayEmployee()#输出:Name: li ,Salary: 21em.displayEmployee()#输出:Name: liu ,Salary: 20 12del em.age #删除实例属性em.displayEmployee() #输出:Name: liu ,Salary: 20再次修改函数:    def displayEmployee(self):        print "Name:",self.name,",Salary:",self.salary        if(hasattr(Employee,'age')):            print Employee.age            Employee.age+=1 测试:em.age=22222print em.displayEmployee()#输出:Name: liu,Salary: 20 Noneprint en.displayEmployee()#输出:Name: li ,Salary: 21None测试另一组:Employee.age=22222print em.displayEmployee()#输出:Name: liu ,Salary: 2022222 #########None??没搞懂这是什么print en.displayEmployee()#输出:Name: li ,Salary: 2122223  ########None??没搞懂这是什么