Young87

当前位置:首页 >个人收藏

新手入门Python核心笔记四:面向对象、执行环境、正则表达式、网络编程【我从没见过你 但我懂你】

第十三章面向对象编程

在 Python 中,面向对象编程主要有两个主题,就是类和类实例。

利用 class 关键字创建一个类:

class MyNewObjectType(bases): #bases 参数用于继承的父类

‘define MyNewObjectType class’

Class_suite

object 是“所有类之母”,若未指明父类,则object 将作为默认的父类。

创建一个实例的语法:(注意:没有使用 new,Python 根本就没有 new 这个关键字)

myFirstObject = MyNewObjectType()

 

添加类方法:

class MyDataWithMethod(object): #定义类

def printFoo(self): #定义方法

print ‘You invoked printFoo()’

 

你可能注意到 self 参数,它在所有的方法声明中都存在。并且必须是第一个参数。这个参数代表实例对象本身,当你调用方法的时候由解释器悄悄地传递给方法,而不需要你自己传递 self。

    init ()方法:类似于一个构造器,但不能说是一个构造器(因为 Python 没有使用

new),它在创建一个新的对象时被调用,完成一个初始化工作。

 

类、属性和方法的命名方式:

类:通常大写字母打头。这是标准惯例。有助于识别类。属性:小写字母打头+ 驼峰,使用名词作为名字。

方法:小写字母打头+ 驼峰,使用谓词作为名字。

在 Python 中,声明与定义类是没有什么区别的,因为它们是同时进行的,定义(类体) 紧跟在声明(含class 关键字的头行)和可选(但总是推荐)的文档字符串后面。

Python 不支持纯虚函数(如 C++)或抽象方法(如 Java)。

Python 严格要求,没有实例,方法是不能被调用的。方法必须绑定(到一个实例)才能被直接调用。

dir(class_name): 返回类对象的属性的一个名字列表

class_name.    dict 

: 返回的是一个字典,key 是属性名,value 是数据值

    init ()方法不应该返回任何对象,即,它应该返回 None,否则将产生 TypeError。

 

实例属性 VS 类属性:

类属性跟实例无关。这些值像静态成员那样被引用,即使在多次实例化中调用类, 类属性的值都不会改变。

子类可以通过继承覆盖父类的方法。类似,如果在子类中覆盖了了  init  ()方法,那么基类的 init ()就不会被自动调用了。

同 C++一样,Python 支持多继承。但要处理好两个方面:

  • 要找到合适的属性
  • 重写方法时,如何调用对应父类以“发挥他们的作用”,同时,在子类中处理好自己的义务

vars()内建函数与 dir()相似,知识给定的对象都必须有一个  dict  属性。vars()返回一个字典,包含了对象存储于其 dict 中的属性(键)和值。

 

上一篇: linux系统下回收站,linux系统回收站功能的实现

下一篇: 一起来学pygame吧 游戏开发30例(七)——飞机大战 小游戏 丨蓄力计划

精华推荐