Python 面向对象类概念介绍
来源:互联网 发布:淘宝买的游戏厅游戏币 编辑:程序博客网 时间:2024/06/16 05:39
Python 高级教程
Python面向对象
类:相同属性和方法的对象的集合。对象是类的实例
类变量(全局变量):整个实例化的对象公用的,定义在函数体之外,通常不作为实例变量使用
实例变量(局部变量):定义在方法中,工方法使用
数据成员:类变量或实例变量用于处理类及其实例对象的相关的数据
方法重写(覆盖override):父类继承的自雷方法不能满足需要,可以重写
继承:派生类继承基类
实例化:创建一哥类的实例,类的具体对象
方法:类中定义的函数
对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法
创建类:
class Classname:
“说明信息”
class_suit #类体,由类成员、方法、数据属性组成
实例:
empCount是类变量
__init__:构造函数或初始化方法
Self代表类的实例,定义类的方法是必须有,但是调用时不用传入
创建实例对象:
类似于函数调用:
创建对象
Emp1 = Employee(“ssss”,2000)
Emp2 = Employee(“ssdd”,2000)
访问属性:
用点(.)访问对象的属性
也可以:
Python对象销毁(垃圾回收)
使用“引用计数”来跟踪和回收垃圾,记录着所有对象各有多少引用
一个内部跟踪变量,叫做“引用计数器”
创建对象时就创建了一个引用计数,对象不需要是引用计数归0,倍垃圾回收,但回收不是“立即”的,有解释器在适当的时机,将垃圾对象占用的内存空间回收
+ “循环垃圾收集器”处理循环引用情况
析构函数:
__del__:对象销毁时候调用,也可以转自己运行此方法
类的继承:
代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。
需要注意的地方:继承语法 class派生类名(基类名)://...基类名写在括号里,基本类是在类定义的时候,在元组之中指明的。
在python中继承中的一些特点:
1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别在于类中调用普通函数时并不需要带上self参数
3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
如果在继承元组中列了一个以上的类,那么它就被称作"多重继承"。
基础重载方法:
1 __init__ ( self [,args...] )
构造函数
简单的调用方法: obj = className(args)
2 __del__( self )
析构方法,删除一个对象
简单的调用方法 : del obj
3 __repr__( self )
转化为供解释器读取的形式
简单的调用方法 : repr(obj)
4 __str__( self )
用于将值转化为适于人阅读的形式
简单的调用方法 : str(obj)
5 __cmp__ ( self, x )
对象比较
简单的调用方法 : cmp(obj, x)
运算符重载:
类属性与方法
类的私有属性:__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs。
类的方法:在类的内部,使用 def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数
类的私有方法:__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用self.__private_methods
单下划线、双下划线、头尾双下划线说明:
头尾双下划线:__foo__:定义的是特殊方法,一般是系统定义名字 ,类似 __init__()之类的。
单下划线:_foo:以单下划线开头的表示的是 protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
双下划线:__foo:双下划线的表示的是私有类型(private)的变量,只能是允许这个类本身进行访问了。
- Python 面向对象类概念介绍
- 关于Python的面向对象概念
- java基础-1-面向对象(1)-概念介绍与类、对象、构造方法
- python面向对象-类
- 包装类概念(面向对象高级)
- c#面向对象的概念、类
- 面向对象程序设计概念
- 面向对象概念解析
- 面向对象核心概念
- 面向对象的概念
- OTcl面向对象概念
- 面向对象概念总结
- 面向对象概念
- 面向对象概念
- 面向对象概念
- 面向对象概念
- 面向对象概念
- 面向对象概念
- 第十四周 【项目2
- 1048. 数字加密(20) PAT乙级真题
- 注册事件兼容
- 第15周||排序算法的基础应用及其验证(1)
- 【第八周】项目3-顺序串算法
- Python 面向对象类概念介绍
- Android Studio 使用NDK编译Protobuf为so库
- 第十周项目1(1)-层次遍历算法的验证
- ios 私有变量的发展历史以及self. 和 _的区别
- UE4 C++编程常用知识点总结
- bootstrap中col-xs-*和col-sm-* 和col-md-*
- SSM+Shiro
- Centreon 安装部署指南++
- MAVEN的安装