python 面向对象

来源:互联网 发布:程序员投资 编辑:程序博客网 时间:2024/04/29 15:11

实例:
定义类时,类名下面的用引号包起来的字符串作为类的说明

#!/usr/bin/python# -*- coding: UTF-8 -*-#1、创建类class Employee:    "所有员工的基类"    empCount = 0    #构造方法    def __init__(self, name, salary):        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.salary    "析构方法"        def __del__(self):        class_name = Employee.__name__        print class_name, '销毁'"2、创建 Employee 类的第一个对象"emp1 = Employee("Zara", 2000)"创建 Employee 类的第二个对象"emp2 = Employee("Manni", 5000)emp1.displayEmployee()emp2.displayEmployee()#3、属性访问方法emp1.age = 7  # 添加一个 'age' 属性emp1.name = "tom"  # 修改 'name' 属性del emp1.age  # 删除 'age' 属性emp1.displayEmployee()emp2.displayEmployee()"类变量"print "Total Employee %d" % Employee.empCount'''你也可以使用以下函数的方式来访问属性:getattr(obj, name[, default]) : 访问对象的属性。hasattr(obj,name) : 检查是否存在一个属性。setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。delattr(obj, name) : 删除属性。'''print hasattr(emp1, 'age')    # 如果存在 'age' 属性返回 True。if hasattr(emp1, 'age'):    print getattr(emp1, 'age')    # 返回 'age' 属性的值setattr(emp1, 'name', 'ann') # 添加属性 'name' 值为 annif hasattr(emp1, 'age'):    delattr(emp1, 'age')    # 删除属性 'age''''4、Python内置类属性__dict__ : 类的属性(包含一个字典,由类的数据属性组成)__doc__ :类的文档字符串__name__: 类名__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)__bases__ : 类的所有父类构成元素(包含了以个由所有父类组成的元组)'''print "Employee.__doc__:", Employee.__doc__print "Employee.__name__:", Employee.__name__print "Employee.__module__:", Employee.__module__print "Employee.__bases__:", Employee.__bases__print "Employee.__dict__:", Employee.__dict__print dir()

注意:
用eclipse工具,类及其方法未定义但已调用的情况下,可通过快捷键 Ctrl + 1 自动创建类及方法

0 0
原创粉丝点击