1.类的定义
python中类的定义,以员工类定义:
class Employee:
'员工基类'
count=0
def __init__(self,name,sex):
self.name=name
self.sex=sex
def count(self):
return Employee.count
def showEmployee(self):
print('employee.name:',self.name,' employee.sex:',self.sex)
以上就完成了python中一个普通类的定义。
其中需要注意的是:
- 类的声明方式是:
class ClassName:
#类变量以及其他帮助信息
class_suite#类的实体
- init()是类的初始化方法
- self表示的是类的实例,每个方法在声明阶段都是必须的,但是在调用阶段可以缺省。值得注意的是self只是习惯用法,也可以使用其他字符串表示,只要保证字符串的位置是在方法定义的第一个位置即可。
- 方法的定义以def开头,并且注意需要缩进
- 类变量是所有实例共享的变量,访问方式为ClassName.variable,比如本例中的Employee.count
- 实例变量的访问方式是self.variable.比如本例中的self.name,self.sex
2.类的使用
2.1导入
1中介绍了python中类的声明和定义,本节介绍如何使用已经定义的类。
如果要在别处使用定义好了的类,需要通过:
from package_path import className
2.2使用
使用上述语句就可以将定义好的类import进来,之后就可以自由使用了。
import之后,要如何定义类的实例呢,方法如下:
emp=Employee('ruben','22')
emp.showEmployee()
del emp
通过如上方法就定义了一个员工,姓名是ruben,年龄是22.并且还可以通过.操作符使用类方法。比如上述代码打印了ruben的员工信息。
如果要销毁一个对象,可以通过”’del className”’方式进行销毁。
2.3类的属性
对于类中的属性,我们还可以通过一些列方法进行检查和动态添加。比如:
hasattr(emp1, 'name') # 如果存在 'name' 属性返回 True。
getattr(emp1, 'name') # 返回 'name' 属性的值
setattr(emp1, 'name', 'lily') # 添加属性 'name' 值为lily
delattr(empl, 'name') # 删除属性 'name'
2.3类的内置属性
__dict__:字典类型,保存了类中的数据属性,格式为“属性名”:“地址or Value”
__doc__:类的文档说明
__name__:类的名称
__module__:类定义所在的模块
__bases__:元组类型,保存类的所有父类
__del__:销毁类需要进行的操作往往在这里定义
形如__init__的表示的是类的特例方法
_protected:_开头的表示的是protected变量或私有方法,只允许本类或者子类访问
__private:__开头的变量表示的是私有变量或私有方法,不能被外部访问。但可以通过instance._classname__privatevariable访问
2.4类的继承
类的继承一般格式如下:
class A:
...
class B:
...
class C(A[,B]):
...
python中一个类可以继承多个父类,只需要在括号中列出来即可。
值得注意的是:
- 基类的初始化不会主动进行,需要在子类中手动调用
- 父类方法的调用需要通过类名显示的调用
- 调用父类方法时,首先都是从派生类中查找,然后在往上查找基类。