python中面向对象的类,方法,实例
来源:互联网 发布:java获取文件夹的路径 编辑:程序博客网 时间:2024/06/07 13:18
python中面向对象的类,方法,实例
编程入门学习中经常看到面向对象的类,方法,实例的概念。
类
类即种类,也就是事先定义的特征模版,用于创建一些具有相同特征的对象。
python中的类使用如下语句定义:
class Student(object): pass
每个类都需要继承一个父类,如果没有父类需要继承默认object类。
实例
实例即通过类创建的具有某些属性的特定对象。
比如通过刚刚的Student类创造实例:
bob = Student()
可以自由地给实例添加属性:
bob.name = 'boby'
方法
刚刚给实例绑定属性也可以在类中完成。 类中定义的函数称为方法。
其中有一种特殊方法 __init__
可以给类绑定默认必须属性。
class Student(object): def __init__(self,name,score): self.name = name self.score = score
在使用该类定义实例时就必须传入这些参数:
bob = Student('boby',60)
注意到__init__
方法第一个参数永远都是self,代表定义的实例本身。
除了特殊方法,类中也可以定义其他普通方法。如定义输出方法:
class Student(object): def __init__(self,name,score): self.name = name self.score = score def print_name_score(self): print(self.name,self.score)
类中的方法第一个参数一定是self,并且调用时无需传入该参数。
此时定义一个实例则该实例拥有print_name_score的方法:
bob.print_name_score()
这样外部在使用实例的方法时不用考虑内部实现方式。这就是面向对象编程的一个特点:数据封装。
面向对象高级编程
__slot__
该特殊方法可限制实例可以添加的属性:
class Student(object): __slot__ = ('name','age')bob = Student()
此时bob实例只可以添加name和age方法(属性)。
不过子类在继承父类后并不继承__slot__
,如果子类中重新定义__slot__
则子类继承父类__slot__
及自身定义的__slot__
。
多重继承:
Python允许一个类继承多个父类:
class dog(animal,pet)
子类可以获得所有父类的方法。
__call__
如果想直接调用实例即可有返回而非调用实例的方法,则需定义一个特殊方法__call__
class Student(object): def __init__(self,name): self.name = name def __call__(self): print('My name is %s'%name)bob = Student('boby')bob()
类与模块
在导入模块时经常看到两种写法: import module
from module import mo
其中第一种写法直接import module是将该模块完全载入。第二种写法则只载入模块中的一个对象,这个对象可能是一个类,或者函数。
- python中面向对象的类,方法,实例
- [Python]面向对象编程---类、实例、方法的对比(4)
- 【Python基础】Python面向对象 - 3 - 新类,静态方法,类方法,实例方法
- Python面向对象编程中公共初始化方法的实现
- python中面向对象编程的特殊方法
- Python学习--面向对象的实例
- python 面向对象 类和实例
- 实例讲解面向对象的思维方法
- python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法
- 生活中面向对象的实例
- python中面向对象
- Python面向对象的基础知识:类Class,对象(Object),实例(Instance)
- 【Python基础】Python面向对象 - 9 - 类属性,实例属性
- python面向对象(二) 内置类方法
- Python 面向对象编程基础(定义类并创建实例、创建实例属性、初始化实例属性、访问限制、类属性、属性名冲突、实例方法、类方法)
- 面向对象的Javascript,创建静态方法和实例方法
- python中实例方法、类方法、静态方法的区别
- Python中静态方法 类方法 实例方法的不同
- FreeSWITCH - mod_xml_rpc源码分析六thread_windows.c
- 二进制负数、补码、原码、反码
- Effective Objective-C 2.0 第5条:用枚举表示状态、选项、状态码
- POJ-1087 A Plug for UNIX
- C和C++混合编程
- python中面向对象的类,方法,实例
- 腾讯大数据之TDW计算引擎解析——Shuffle
- hdu 5428 The Factor 求一个数列的乘积的最小因子的因子数大于2 筛素数
- 1026. Table Tennis (30)
- WPF学习开发历程(一)——明天开始学习
- STL之list容器详解
- Linux内核switch_to宏实现进程切换的原理
- 29. 继承
- java数据库连接池封装及使用