python面向对象-类
来源:互联网 发布:如何自学软件测试 编辑:程序博客网 时间:2024/05/22 22:20
1.概念
python中的所有东西都是类,如:字符串类,整形类,它们都有自己的属性和方法属性:类里面的特性 不加()方法:类里面的函数 要加()类的实质是一种数据类型,类似于int、str等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。类是对现实生活中一类具有共同特征的事物的抽象。
2.类的定义
基本形式:class ClassName(object): Statement1.class 定义类的关键字2.ClassName 类名,类名的每个单词的首字母大写(驼峰规则)。3.object 是父类名,object 是一切类的基类。在python3中如果继承类是基类可以省略不写。方法的参数中第一个参数我们约定俗成的为 self 参数名,self 代表的是在类实例化后这个实例对象本身。初始化函数除了有 self 这个参数表示实例对象本身之外,其他的参数的定义也遵循函数的必备参数和默认参数一样的原则,必备参数就是在实例化是一定要传入的参数,默认参数就是在定义时可以给这个参数一个初始值。
3.类的实例化
基本形式:实例对象名 = 类名(参数)在实例化的过程中,self代表的就是这个实例对象自己。实例化时会把类名后面接的参数传进去赋值给实例,这样传进去的参数就成为了这个实例对象的属性。实例化的过程遵循函数调用的原则。在实例化时也必须个数和顺序与定义时相同(使用关键字参数可以改变传参的顺序)。当初始化函数定义时使用了默认参数时,在实例化时默认参数可以不传参,这时这个实例对象就会使用默认的属性,如果传了参数进去则会改变这参数值,实例化对象的属性就为你传进来的这个参数。isinstance(实例名,类名)判断一个实例是不是这个类的实例。
4.类和实例的属性
类属性 .类属性是可以直接通过“类名.属性名”来访问和修改。 .类属性是这个类的所有实例对象所共有的属性, 任意一个实例对象都可以访问并修改这个属性(私有隐藏除外)。 .对类属性的修改,遵循基本数据类型的特性:列表可以直接修改,字符串不可以, 所以当类属性是一个列表时,可通过任意一个实例对象对其进行修改。 但字符串类型的类属性不能通过实例对象对其进行修改。 当实例对不可变对象进行修改之后,会查找实例的类属性,不会查找类的属性,同时类的属性不会变。实例属性 .在属性前面加了 self 标识的属性为实例的属性。 .在定义的时候用的 self 加属性名字的形式,在查看实例的属性时 就是通过实例的名称+‘.’+属性名来访问实例属性。方法属性 .定义属性方法的内容是函数,函数的第一个参数是 self,代表实例本身。一些说明: .数据属性会覆盖同名的方法属性。减少冲突,可以方法使用动词,数据属性使用名词。 .数据属性可以被方法引用。 .一般,方法第一个参数被命名为 self,这仅仅是一个约定, self 没有特殊含义,程序员遵循这个约定。 .查看类中的属性和实例属性可以调用 __dict__ 方法返回属性组成的字典。 .Python 中属性的获取是按照从下到上的顺序来查找属性 .Python 中的类和实例是两个完全独立的对象 .Python 中的属性设置是针对对象本身进行的
5.类的私有变量
声明:在属性变量名前加上双下划线定义属性为私有属性特性:在Python中就算继承也不能相互访问私有变量,或者父类访问子类的私有属性也不可以在Python中,通过单下划线”_”来实现模块级别的私有化,一般约定以单下划线”_”开头的变量、函数为模块私有的,也就是说”from moduleName import *”将不会引入以单下划线”_”开头的变量、函数对于Python中的类属性,可以通过双下划线”__”来实现一定程度的私有化,因为双下划线开头的属性在运行时会被”混淆”(mangling)。_”和” __”的使用 更多的是一种规范/约定,没有真正达到限制的目的“_”:以单下划线开头只能允许其本身与子类进行访问“__”:双下划线的表示的是私有类型的变量。这类属性在运行时属性名会加上单下划线和类名。
6.数据封装
在类里面数据属性和行为用函数的形式封装起来,访问时直接调用,不需知道类里面具体的实现方法。
(学习笔记整理来自潭州 python 不动老师的课程内容)
阅读全文
1 0
- python面向对象-类
- Python笔记:面向对象,类
- python面向对象中的类
- python面向对象(二) 内置类方法
- [python 笔记4]类(面向对象?)
- Python学习笔记----面向对象(类)
- Python类——面向对象程序设计
- python面向对象--类学习记录
- Python面向对象特性,走向类
- python类与面向对象编程
- python(六)面向对象学习--类
- [Python]面向对象编程---类定义(1)
- [Python]面向对象编程---类属性(2)
- Python的类与面向对象
- [py]python面向对象-类成员class_vars
- python 面向对象 类和实例
- python面向对象类的使用
- Python 面向对象类概念介绍
- JavaShowAlgorithm-Binary Tree Longest Consecutive Sequence
- C#中的相等
- 烧脑的经典科幻电影—— 《The Matrix》
- 解决问题python
- T
- python面向对象-类
- 数据库不适合Docker及容器化的7大原因
- 数据结果第八周项目4--稀疏矩阵的三元组表示的实现及应用
- 感恩的深思
- 对于机器学习,到底该选择哪种编程语言
- CppSQLite
- 我们为什么要使用 AOP
- B树 B+树
- ocx查看器