python学习笔记-类和实例

原创 2017年01月02日 21:52:47

    类是一种数据结构,可用于创建实例。(一般情况下,类封装了数据和可用于该数据的方法)
    Python类是可调用的对象,即类对象
    类通常在模块的顶层进行定义,以便类实例能够在类所定义的源代码文件中的任何地方被创建。
    实例初始化
        instance = ClassName(args....)
        类在实例化时可以使用__init__和__del__两个特殊的方法。

class ClassName(base):
‘class documentation string’ #类文档字符串
class suite #类体

    base:超类是一个或多个用于继承的父类集合
    类体可以包括:声明语句、类成员定义、数据属性、方法
    如果类不存在继承关系,就不提供括号里的base

class FirstClass():
spam = 30 #类数据属性
def display(self): #类方法
print self.spam

x = FirstClass() #创建类实例
x.display() #方法调用

30
dir(FirstClass)
[‘doc‘, ‘module‘, ‘display’, ‘spam’]

    class语句类似def,是可执行代码;直到运行class语句后,类才会创建
    class语句内,任何赋值语句都会创建类属性
    每个实例对象都会继承类的属性并获得自己的名称空间

Python类方法及调用
实例(对象)包含的属性

    可调用的属性:方法
    数据属性

在OOP中,实例就像是带有“数据”的记录,而类是处理这些记录的“程序”

    通过实例调用方法相当于调用所属类的方法来处理当前实例。
        比如之前的代码例子,x.display() 会被自动转换为 FirstClass.display(x),即调用类的方法来处理实例x
    因此,类中每个方法必须有self参数,它隐含当前实例之意
    在方法内对self属性做赋值运算会产生每个实例自己的属性
    Python规定,没有实例,方法不允许被调用,这是‘绑定’(binding)的概念
    class语句中的赋值语句会创建类属性,如前面例子的spam
    在类方法中对传给方法的特殊参数self进行赋值会创建实例属性

Python构造器

创建实例时,Python会自动调用类中的__init__方法,以隐形的为实例提供属性

    __init__方法被称为构造器
    如果类中没有定义__init__方法,实例创建之初仅仅是一个简单的名称空间。
    __init__的第一个参数一定是self
        self 变量用于在类实例方法中引用方法所绑定的实例。因为方法的实例在任何方法调用中总是作为第一个参数传递的,self 被选中用来代表实例。你必须在方法声明中放上 self,但可以在方法中不使用实例(self)。如果你的方法中没有用到 self , 那么请考虑创建一个常规函数,除非你有特别的原因。毕竟,你的方法代码没有使用实例,没有与类关联其功能,这使得它看起来更像一个常规函数。在其它面向对象语言中,self 可能被称为 this。
    __init__不能返回任何对象
    析构函数:__del__
    构造函数是必要的,而析构函数常常可以不考虑(Python解释器会自己回收)

class MyClass():
def init(self, name):
self.name = name
print ‘My name is ’ + self.name
def del(self):
print self.name + ’ is dead.’

i1 = MyClass(‘Shaw’)

My name is Shaw
del i1
Shaw id dead.

类的特殊属性

    使用dir()或__dict__,查看类或实例的属性
    __doc__:获取文档字符串
    __base__:获取所有父类
    __module__:类所在的模块
    __name__:实例所属类的名字

Python类方法中可用的变量

    实例变量:self.变量名
    局部变量:方法内部创建的变量,可直接使用
    静态变量:类中定义的变量。类名.变量名
    全局变量:直接使用

继承

继承描述了基类的属性如何‘遗传’给派生类

    子类可以继承他的基类的任何属性,包括数据属性和方法
    一个未指定基类的类,其默认有一个叫object的基类
    Python允许多重继承(可以继承多个父类)
版权声明:本文为博主原创文章,未经博主允许不得转载。

【Python学习笔记】面向对象编程:类和实例

【根据廖雪峰python教程整理】 一、面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对...

Python学习笔记——类属性和实例属性

Python学习笔记——类属性和实例属性的区别访问特性首先我们以Test类为例:class Test(object): #类属性 a = 100 def __init__(se...

Python学习笔记_类,类对象,实例对象

1、self 当实例方法被调用时,对象会将自身self作为第一个参数传入。所以在定义时需要将self写入,在调用时不用写。 2、公有、私有 Python的属性和方法默认都是公有的,可以通过 . 访问到...

python进阶学习笔记(四)——python中访问限制、创建类属性、定义实例方法、定义类方法、类的继承

python中访问限制 我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办? Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无...

python学习笔记:利用contextlib和@contextmanager实现with语句上下文实例

#contextlib ''' 任何对象,只要正确实现了上下文管理,就可以用于with语句。 实现上下文管理是通过__enter__和__exit__这两个方法实现的, 也可以通过@contextma...

linux下python学习笔记(十四)之备份实例2

接着上篇进行改进。 版本三 第二个版本在我做较多备份的时候还工作得不错,但是如果有极多备份的时候,我发现要区分每个备份是干什么的,会变得十分困难!例如,我可能对程序或者演讲稿做了一些重要的改变,于...

python学习笔记——控制流(if,while,for,break,continue,模拟登录小程序实例)

1.if # -*- coding:utf-8 -*- ''' if语句: if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 ...

linux下python学习笔记(十三)之备份实例1

我们已经掌握了很多Python的基本知识,我们接下来将学习如何设计和编写一个实用的Python程序。这将是非常激动人心的。   一个可以为我的所有重要文件创建备份的程序 首先分析一下这个题目,例...

Python下的机器学习工具scikit-learn(学习笔记2--官方实例程序)

本文参考官方网站:http://scikit-learn.org/stable/tutorial/basic/tutorial.html scikit-learn工具包自带一些标准数据集(包括iris...

python进阶学习笔记(五)——创建实例属性、初始化实例属性

python中创建实例属性 虽然可以通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分xiaoming、xia...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python学习笔记-类和实例
举报原因:
原因补充:

(最多只允许输入30个字)