引例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount
1. __init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
2. self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
1.创建类
class ClassName:
'类的帮助信息' #类文档字符串
class_suite #类体
2.创建实例对象
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
3.访问属性
1.使用点号 . 来访问对象的属性
emp1.displayEmployee()
emp2.displayEmployee()
2.也可以使用以下函数的方式来访问属性:
getattr(obj, name[, default]) : 访问对象的属性。
hasattr(obj,name) : 检查是否存在一个属性。
setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。
delattr(obj, name) : 删除属性。
3.Python内置类属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
4.类的属性和方法
1. 私有属性:为了让方法或特性私有,只需在名字前加双下划线 __
无法从外界使用,但类的内部依旧可以访问
Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName( 对象名._类名__私有属性名 )访问属性,参考以下实例:
class Runoob:
__site = "www.runoob.com"
runoob = Runoob()
print runoob._Runoob__site
2. 类的方法
在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数
3. _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *