文档章节

Python OO学习

吐槽的达达仔
 吐槽的达达仔
发布于 2014/12/05 22:17
字数 342
阅读 26
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

 

#!/usr/bin/python
# Filename: method.py
class Person:
    def sayHi(self):
        print 'Hello, how are you?'

p = Person()
p.sayHi()

 

Python中的self:

假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self的原理了。

 

 

#!/usr/bin/python
# Filename: objvar.py

class Person:
    '''Represents a person.'''
    population = 0

    def __init__(self, name):
        '''Initializes the person's data.'''
        self.name = name
        print '(Initializing %s)' % self.name

        # When this person is created, he/she
        # adds to the population
        Person.population += 1

    def __del__(self):
        '''I am dying.'''
        print '%s says bye.' % self.name

        Person.population -= 1

        if Person.population == 0:
            print 'I am the last one.'
        else:
            print 'There are still %d people left.' % Person.population

    def sayHi(self):
        '''Greeting by the person.

        Really, that's all it does.'''
        print 'Hi, my name is %s.' % self.name

    def howMany(self):
        '''Prints the current population.'''
        if Person.population == 1:
            print 'I am the only person here.'
        else:
            print 'We have %d persons here.' % Person.population
 

 

 

       在这个方法中,我们让population增加1,这是因为我们增加了一个人。同样可以发现,self.name的值根据每个对象指定,这表明了它作为对象的变量的本质。记住,你只能使用self变量来参考同一个对象的变量和方法。这被称为 属性参考 。

       用Java的语言来说,population是一个静态变量,通过self赋值的,才是成员变量。

 

Python中的toString()方法:

class Person:
	def __init__(self,name):
		self.name = name
		
	def __str__(self):
		return 'name:'+self.name

 使用方式:

p = Person('sam')

print p

 

 

 

本文转载自:http://dacoolbaby.iteye.com/blog/2035554

吐槽的达达仔
粉丝 28
博文 109
码字总数 8369
作品 0
广州
程序员
私信 提问
开源领袖谈UNIX下的编程语言

C语言 虽说C语言在内存管理方面存在严重的缺陷,不过它还是在某些应用领域里称王称霸。对于那些要求最高的效率,良好的实时性,或者与操作系统内核紧密关联的程序来说,C仍然是很好的选择。 ...

kouxunli1
2015/01/07
278
0
几种计算机语言的评价

今天在阮一峰博客上看到的文章,觉得很有意思特地发到OSC上,可能已经有人转发过类似的文章,重复请见谅,以下是正文 ------------------------------------------------------------------...

wysjri
2011/12/02
1K
16
Python 聊天室 II(SimpleXMLRPCServer模块实现)

并不是上一个用SocketServer的聊天室的延续。用远程调用完成的聊天室。 正好有Java的RMI聊天室的作业,就先用Python写了一个简单的类似远程调用的东西,逻辑完成之后,在Java上写一遍也是水到...

FuniK
2012/12/19
755
0
Python的Cython在Windows环境下的部署安装

大学课程主教java,搞过java web 后,突发感想对于OO语言的了解,以及设计模式与OO语言的优美的配合,但同时也发现java开发的周期性十分长,于是就四处需找不错的语言,终于发现了Python。 ...

WilsonET
2013/04/06
10.8K
1
Python中re(正则表达式)模块学习

今天学习了Python中有关正则表达式的知识。关于正则表达式的语法,不作过多解释,网上有许多学习的资料。这里主要介绍Python中常用的正则表达式处理函数。 re.match   re.match 尝试从字符...

劲风online
2015/07/20
48
0

没有更多内容

加载失败,请刷新页面

加载更多

003-ES集群

ES 集群 详情: https://my.oschina.net/u/3635512/blog/3140294 将实验机器/etc/elasticsearch/elasticsearch.yml 中配置文件改为 cluster.name: myes   #ES集群名称node.name:......

伟大源于勇敢的开始
21分钟前
6
0
法国电力项目二期正式验收

2019年12月10日, 法国电力项目二期正式验收 并就未来的合作技术方向进行了探讨: 去中心化数据存储/搜索引擎 可信计算/零知识证明 能源虚拟机改造 出席的人有: 法国电力总部 CIO&CTO Step...

怎当她临去时秋波那一转
36分钟前
3
0
谷歌助手

参照: https://www.mxblog.com.cn/mac%E7%89%88chrome%E6%B5%8F%E8%A7%88%E5%99%A8%E5%AE%89%E8%A3%85%E8%B0%B7%E6%AD%8C%E8%AE%BF%E9%97%AE%E5%8A%A9%E6%89%8B.html......

T型人才追梦者
45分钟前
6
0
索引延迟关联

前言 今天在看代码的时候学习到了一种索引的优化,就先在此记录下来。 具体 举个例子,原sql如下: SELECT * FROM TABLE WHERE INDEX = '' LIMIT 10000, 10; 现象 就算INDEX用了查询索引,...

无敌小杰杰
今天
6
0
tomcat_jdk安装,安装zrlog,nginx代理tomcat,第二个java应用

tomcat_jdk安装 要跑tomcat 首先要安装 jdk jdk 有两个版本 一个是 open jdk,一个是 oracle jdk open jdk 是 oracle jdk 的开源版本 两个版本都可以使用 这次实验先使用 open jdk 来做 如果...

doomcat
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部