在学习python的面向对象时,我始终参照的是c++的面向对象机制。相对而言,python的面向对象确实更简单一些。

基础:

  1. 整数也被作为对象。前面就看到过,说所有的东西都是对象,包括函数。
  2. 属于一个对象或类的变量被称为域——这个名称有点奇怪,c++叫成员。
  3. 域分为两种,分别属于对象和属于类——其实就是成员和静态成员。
  4. Self指针:相当于c++中的this。文档是否有问题,c++有self吗?
  5. 类的方法的第一个参数必须是self?为什么?目前来说不带self是会运行失败的。

__init__方法

  1. 类的构造函数是__init__方法,它在创建类的时候调用。
  2. 它并不是必须的,可以没有。
  3. 它可以有多个,运行的时候不会出错,但是只可以调用参数最多的那个。其他的一调用就有问题。

成员变量和类的变量,方法

  1. 类变量的定义:缩进和方法的缩进相同。引用的时候,需要使用class.变量名的方式。
  2. 对象变量的定义:要通过self.变量名的形式在__init__方法中定义。这个是合理:不可以把成员的定义散布在代码的各个地方。而且只能在这里定义,在其他的方法中是无法定义的。
  3. 如果在其他的方法中定义:self.变量名,那么它只能在这个方法中以self.变量名的方式调用。
  4. 而且,在对象方法的一级缩进上,self是不合法的。那个应该属于类的区域。
  5. 是否可以定义一个类的全局的方法,类似于c++的static方法?也许python根本就不需要这么做,有他的处理方案。什么方案?后面要了解一下。

析构函数

__del__方法相当于他的析构函数,在对象被销毁的时候调用。

级别

如何定义private和public?默认的,都是public,如果名称加双下划线:__,这表示是private。有点怪。

继承:

继承时成员特性:

  1. 对于类的成员,在子类中可以通过父类.变量名或者子类.变量名来访问,是相同的。
  2. 对于对象的成员,在子类中通过self.变量名来访问。但是无法访问以__开头的的私有变量。

继承时方法的特性:

  1. 生成子类的构造函数的时候,不会自动调用父类的构造函数,你必须手动调用它。同时,在对象释放的时候,同样要手动调用析构函数。
  2. 子类的构造函数和析构函数可以不定义,如果不定义的话,这会调用基类的构造和析构函数。
  3. Python不存在动态绑定和静态绑定。这一点和c++不同。
  4. 如果基类有一个public函数,子类中重新定义一个和他名称相同,但是多一个参数的函数,多的这个参数使用默认参数。这样来调用的话,调用的子类的函数,而不是父类的函数。应该是这样。

这种继承模型确实非常简单。

特殊方法:

  1. __init__(self,...)   这个方法在新建对象恰好要被返回使用之前被调用。
  2. __del__(self)    恰好在对象要被删除之前调用。
  3. __str__(self)   在我们对对象使用print语句或是使用str()的时候调用。
  4. __lt__(self,other)    当使用 小于运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
  5. __getitem__(self,key)    使用x[key]索引操作符的时候调用。
  6. __len__(self)    对序列对象使用内建的len()函数的时候调用。

其他:

  1. 文件:3.0后,打开文件的函数变为了open而不是原有的file。文件必须要close吗?如果不close是否会泄露?
  2. 存储器:Cpickle模块能够将一个对象完整的存储在一个文件中,后面可以再把它给打开,一模一样。在3.0中,模块Cpickle和pickle都合为pickle。
  3. 列表综合:可以从一个已有的列表导出一个新的列表。
  4. 可以在函数中通过*和**接受元组和列表。
  5. Lambda可以生成一个新的函数对象。
  6. Exec函数和eval函数可以自行保存在字符串中的python语句。这个将运行编写更加智能的代码。

进一步学习计划

我在工作中的主要语言是c和c++。听说google在工作中会用python和c++一起编程,python用作胶水语言。混搭可能会成为一种趋势,可以充分的发挥各个语言的优势。我会在工作中找机会尝试一下,看效果如何。我认为,一个语言能够方便的调用其他的语言,以及被其他语言调用,可能会成为一个语言的重要的一个特性。

其次,我一直以来都想开发一个关于学习的网站,同时,Google App Engine支持python,所以,我可能会利用业余时间用python开发一个运行在google app engine的网站。

下一步的学习资料,我选择的是《深入理解Python》,希望能够更深一步的了解python。同时,我可能会找一些相关的源码来学习一些如何使用python开放大型程序。

转载于:https://www.cnblogs.com/chgaowei/archive/2011/05/29/2062418.html

python初体验(2)——面向对象篇相关推荐

  1. 小白如何入门Python?记我的Python初体验

    Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 文章目录 前言 一.初识Python 1.Python概述 1.1 Python的创始人 1.2 简介 2.P ...

  2. Synopsys初体验——软件安装篇

    Synopsys初体验--软件安装篇 前言 一.虚拟机VMware的安装与使用 1.软件安装 2.创建自己的虚拟机 二.Synopsys系列软件的安装 前言 时光飞逝,转眼间已经是将要毕业的人了.之前 ...

  3. Python从入门到精通,100天就够了!(1)——Python初体验

    文章目录 从小白到半个程序员 Python初体验 Python语言元素之变量 Python语言元素之运算符 从小白到半个程序员 ​毫无疑问,Python是当下最火的编程语言之一,根据TIOBE编程语言 ...

  4. 平凡之路:计算机基础+python初体验

    主要内容: 计算机发展史 计算机硬件及操作系统 字符编码简介 Python简介 Python基础知识 一.初窥计算机的世界 1.简述计算机的发展史 从第一台电子计算机发展到今日,掐指算下来也有70余年 ...

  5. python初体验-hello world答案_Python基础学习之Python初体验

    一.前期准备对于python的学习,首先的有一个硬件电脑,软件python的运行环境.说了一句废话,对于很多初学者而言,安装运行环 境配置环境变量的什么的各种头疼,常常在第一步就被卡死了,对于pyth ...

  6. 我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)

    目录 前言 官网体验 环境搭建 总结 前言 当我第一眼看到这个活动的时候,吸引我的不是所谓的奖励,而是活动文章中的"填补了国人开发者在数据科学领域的空白",很有志气的一句话,我喜欢 ...

  7. Python 初体验

    广告:欢迎大家到 路飞学城 学习 Python- 很喜欢 Python "薪"时代 这个词- 所以我们要拥抱 "人工智能"- 拥抱 "Python-& ...

  8. 我的编程成长之路——python初体验

    选择python这门课是我大一就已经作好了准备的,只是上学期没时间,在这学期选课我首选的便是python,说到学习python,其实这已经是我学的第四门编程语言了,因为对计算机感兴趣,虽然专业不需要使 ...

  9. python初体验-hello world答案_Python初体验_基础(一)

    一:变量 变量的赋值: name = "Meng" 上述代码声明了一个变量,变量名为name,变量name的值为:"Meng" 变量定义: 一个在内存存数据的容 ...

  10. stackless python初体验

    2019独角兽企业重金招聘Python工程师标准>>> stackless python真是毁三观,算斐波那契数列,n为100000(十万),运行时间2.2秒左右 这里写一下感悟: ...

最新文章

  1. iOS - OC NSPoint 位置
  2. common.logging和log4j比较
  3. [攻防世界 pwn]——int_overflow
  4. 计算机网络的含义是什么意思,互联网的基本含义是什么
  5. 前端学习(2650):composition组件
  6. WSGI直观形象的了解一下
  7. SpringCloud创建Config模块
  8. cocos2d-x之猜数字游戏
  9. “再见,Linux!”
  10. 我是如何用redis做实时订阅推送的
  11. 从头实现linux操作系统_从头开始实现您的第一个人工神经元
  12. authware链接html文件,authorware是什么软件?
  13. Cadence PSpice 仿真5:运放噪声仿真实战图文教程
  14. 使用firefox color自定义firefox的主题
  15. Mockplus原型设计工具介绍
  16. java身份证实名认证
  17. 2018-2019-2 20189206 《网络攻防实践》 第二周作业
  18. 服务器运维的日常维护工作有哪些
  19. 公共关系计算机操作题,Access上机操作题库.doc
  20. 种子的“选择”可影响地区生物多样性

热门文章

  1. 接口(Interface)的作用
  2. Ajax叠加(Ajax返回数据用Ajax发出)
  3. JsSIP 注册,拨打填坑
  4. java比较器Comparator 和 Comparable 的区别
  5. actor对自己不可见
  6. CentOS7.1安装 Vsftpd FTP 服务器
  7. Drcom账户管理Server端解说
  8. 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
  9. linux搭建phantomjs+webdriver+testng+ant自动化工程
  10. 自定义snmp oid