1.1 类里面包括:类的属性、方法

OO的特征(Object Oriented)

封装:信息隐蔽技术

继承:继承是子类自动共享父类之间数据和方法的机制

>>> class MyClass(list):
pass
>>> list1.append(4)
>>> list1.append(3)
>>> list1.append(7)
>>> list1
[4, 3, 7]
>>> list1.sort()
>>> list1
[3, 4, 7]

多态:不同对象对同一方法响应不同的行为

OOA:面对对象分析

OOP:面对对象编程

OOD:面对对象设计

对象的方法中都有一个self的参数,相等于C++的this 指针

  由一个类可以生成无数的对象,这些对象都长的基本一样,当一个对象的方法被调用的时候,对象会将自身(self)作为第一个参数,接收到这一个参数的时候,Python的类就知道是哪一个对象在调用方法了

  

class Ball:
def SetName(self,name):
self.name = name
def kick(self):
print('我是%s,你踢我干嘛!',self.name)

执行之后的结果:

>>> a.Kick()
我是球A,你踢我干嘛!
>>> b.Kick()
我是球B,你踢我干嘛!
>>> c.Kick()
我是球C,你踢我干嘛!

1.2 python中的魔法方法:

  python的对象天生拥有一些神奇的方法,他们是面对对象的python的一切,他们是可以给你的类增加魔力的特殊方法,如果你的对象实现了这些方法中的某一个,这个方法就会在特殊的情况下被python所调用,而这一切都是自动发生的。

这些具有魔力的方法都是以双下划线定义:

__init__(self):构造方法 ,该方法的魔力在于,实例化一个对象的时候,那么这个方法会在这个对象创建的时候调用(c++中的构造函数,)进行初始化操作

1.2.1 公有私有

默认的情况下类中的属性和方法都是公有的,都是可以通过点操作符来进行访问

为了实现类似私有变量的特征,python内部中采用一种name mangling(名字改编,名字重整)

在Python中定义私有变量只需要在变量名或函数名前加上“__”两个下划线,那么这个函数或变量就会私有的了。

class Person:
_name = '小甲鱼'

可以通过类内的方法来进行访问

实际上是对变量作了手脚

将变量名改成了

_类名__变量名

所有上面的person类中的私有变量可以通过以下方法访问到:

>>> p = Person()
>>> p._Person__name
'小甲鱼'
>>>

python 中的类的更多相关文章

  1. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  2. python中的类和实例

    今天花了两个多小时后搜索相关博客看了看python中有关类和实例的介绍,差不多大概明白了. python中的类和c++中的类是一样的,不同之处就是c++的类,如果含有成员变量,并且成员变量发生变化后, ...

  3. 4、Python中的类详解(0601)

    <大话数据结构>的作者程杰在博客园也有博客,网址是:http://cj723.cnblogs.com/ 面向对象编程(OOP) 1.程序 = 指令 + 数据 代码可以选择以指令为核心或以数 ...

  4. Python中的类(上)

    在Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象类创建实例对象. 例如,下面创建了一个Student的类,并且实现了这个类的初始化函数"__init__&quo ...

  5. python中新式类和经典类

    python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...

  6. python中的类(二)

    python中的类(二) 六.类的成员 字段:普通字段,静态字段 eg: class Province(): country=’中国’ #静态字段,保存在类中,执行时可以通过类或对象访问 def __ ...

  7. Python中的类(一)

    Python中的类(一) 一. 应用场景 如果多个函数中有一些相同的参数时,转换成面向对象. 二. 如何创建类 类是用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法 ...

  8. 关于Python中的类普通继承与super函数继承

    关于Python中的类普通继承与super函数继承 1.super只能用于新式类 2.多重继承super可以保公共父类仅被执行一次 一.首先看下普通继承的写法 二.再看看super继承的写法 参考链接 ...

  9. python中的类与继承

    Class 类的定义以及实例的建立 Python中,类通过 class 关键字定义. 例如最简单的一个类定义可以为: class Person(object): pass Python 的编程习惯,类 ...

  10. GO-结构体(类似python中的类)

    一.结构体有名属性 package main import "fmt" func main(){ type Sb struct { name string //属性名,数据类型 a ...

随机推荐

  1. 2.9 while循环

    while循环 <1>while循环的格式 while 条件: 条件满足时,做的事情1 条件满足时,做的事情2 条件满足时,做的事情3 ...(省略)... demo i = 0 whil ...

  2. 第三节,目标检测---R-CNN网络系列

    1.目标检测 检测图片中所有物体的 类别标签 位置(最小外接矩形/Bounding box) 区域卷积神经网络R-CNN 模块进化史 2.区域卷积神经网络R-CNN Region proposals+ ...

  3. POJ 1251 Jungle Roads (最小生成树)

    题目: Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ...

  4. Idea 创建控制台程序

    1:前提配置好 jdk环境. 最后一步:填写项目名称和保存的路径 即可.

  5. HTTP协议09-响应首部字段

    响应首部字段 响应首部字段是由服务器向客户端返回响应报文中所使用的字段,用于补充响应的附加信息.服务器信息,以及对客户端的附加要求等信息. 1)Accept-Ranges Accept-Range:b ...

  6. css3之border-radius理解

    在日常项目过程中,border-radius这个属性算是非常常用的属性之一了,通过设置元素的border-radius值,可以轻松给元素设置圆角边框,甚至实现绘制圆.半圆.四分之一的圆等各种圆角图形. ...

  7. kafka知识点详解

    第一部分:kafka概述 一.定义(消息引擎系统) 一句话概括kafka的核心功能就是:高性能的消息发送与高性能的消息消费. kafka刚推出的时候是以消息引擎的身份出现的,它具有强大的消息传输效率和 ...

  8. C#+EntityFramework编程方式详细之Code First

    Code First Code First模式即“代码优先”模式,是从EF4.1开始新建加入的功能.使用Code First模式进行EF开发时只需要编写对应的数据类,然后自动生成数据库. Code F ...

  9. win10+caffe+GPU

    由于学习需要,决定安装caffe,之前用的都是基于theano的keras.听说win下caffe很难配置,经过一个下午和晚上的配置终于成功,以此记录. 我的电脑:win10 64位,N卡GTX950 ...

  10. Python的单例模式

    一.何为单例模式 单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点. 实现某个类只有一个实例的途径: 1.让一个全局变量使得一个对象被访问,但是他不能防止外部实例化多个对象. 2.让类自 ...