python 中的类
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 中的类的更多相关文章
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python中的类和实例
今天花了两个多小时后搜索相关博客看了看python中有关类和实例的介绍,差不多大概明白了. python中的类和c++中的类是一样的,不同之处就是c++的类,如果含有成员变量,并且成员变量发生变化后, ...
- 4、Python中的类详解(0601)
<大话数据结构>的作者程杰在博客园也有博客,网址是:http://cj723.cnblogs.com/ 面向对象编程(OOP) 1.程序 = 指令 + 数据 代码可以选择以指令为核心或以数 ...
- Python中的类(上)
在Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象类创建实例对象. 例如,下面创建了一个Student的类,并且实现了这个类的初始化函数"__init__&quo ...
- python中新式类和经典类
python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...
- python中的类(二)
python中的类(二) 六.类的成员 字段:普通字段,静态字段 eg: class Province(): country=’中国’ #静态字段,保存在类中,执行时可以通过类或对象访问 def __ ...
- Python中的类(一)
Python中的类(一) 一. 应用场景 如果多个函数中有一些相同的参数时,转换成面向对象. 二. 如何创建类 类是用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法 ...
- 关于Python中的类普通继承与super函数继承
关于Python中的类普通继承与super函数继承 1.super只能用于新式类 2.多重继承super可以保公共父类仅被执行一次 一.首先看下普通继承的写法 二.再看看super继承的写法 参考链接 ...
- python中的类与继承
Class 类的定义以及实例的建立 Python中,类通过 class 关键字定义. 例如最简单的一个类定义可以为: class Person(object): pass Python 的编程习惯,类 ...
- GO-结构体(类似python中的类)
一.结构体有名属性 package main import "fmt" func main(){ type Sb struct { name string //属性名,数据类型 a ...
随机推荐
- EffectiveC++ 第2章 构造/析构/赋值运算
我根据自己的理解,对原文的精华部分进行了提炼,并在一些难以理解的地方加上了自己的"可能比较准确"的「翻译」. Chapter 2 构造 / 析构 / 赋值 条款 05:了解C++ ...
- 拆系数FFT及其部分优化
模拟考某题一开始由于校内OJ太慢直接拆系数FFT跑不过 后来被神仙婊了一顿之后发现复杂度写炸了改了改随便过 模版题:任意模数NTT 三模数NTT 常数巨大,跑的极慢 拆系数FFT 原理是对于两个多项式 ...
- C# - 多线程(基础)
多线程 基础(Multithreading) 一些基本的关于线程和与其相关的概念 位)的变量赋值,这个操作就是原子性的.因为它可以一次性填充64位的二进制数据到栈上,属于一步完成,不会发生断裂.而假如 ...
- python开发遇到的坑(1)xpath解析ValueError: Unicode strings with encoding declaration are not supported
Traceback (most recent call last): File "/Users/*******.py", line 37, in <module> Bt ...
- TCP-IP详解学习笔记2
TCP-IP详解学习笔记2 链路层 链路层的目的是为IP模块发送和接收IP数据报: TCP/IP支持多种不同的链路层,依赖于使用网络硬件类型:有线局域网(以太网,城域网(MAN),有线语音网络).无线 ...
- php 新闻上一条下一条
public function prevnext($table,$id,$where=[]){ $ids=db($table)->field('id,title')->order('sor ...
- 【oracle唯一主键SYS_GUID()】
现在给大伙介绍另外的一钟防止主键相同的方法. 唯一主键 使用 SYS_GUID() 生成32位的唯一编码.来生成唯一主键 例如: create table test ( id raw(16) defa ...
- 十一Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战& ...
- AD证书导入文档(单向认证)
AD证书或者SSL证书导入的方法步骤(在root用户下操作) 1. 将证书命名为AD-PRO.cer,并确定证书的颁发. 2. 将/app/ad_cert/keystore下的原有证书删除掉和文件 ...
- Jmeter_24个常用函数
JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1 ...