`
dacoolbaby
  • 浏览: 1267257 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Python OO学习

阅读更多

 

#!/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

 

 

 

分享到:
评论

相关推荐

    python学习

    例如,-c选项允许用户在命令行直接执行Python代码,-O和-OO选项用于在执行前对字节码进行优化。 随着技术的发展,Python社区继续扩展和改进Python的功能和性能。例如,Python的虚拟环境功能允许用户创建隔离的...

    python 零基础学习篇-08Quiz oo、game of life.zip

    在本资源包“python 零基础学习篇-08Quiz oo、game of life.zip”中,包含了Python编程初学者的两个重要主题:面向对象编程(Object-Oriented Programming, OOP)和“生命游戏”(Game of Life)。让我们深入探讨这...

    python 机器学习 Scikit-learn 中文文档

    Scikit-learn是Python中最流行的机器学习库之一,支持各种机器学习算法,既可以用于数据挖掘,也可以用于数据分析。中文文档可以帮助中文用户更好地理解和使用Scikit-learn,从而提升机器学习实践的效率和质量。 有...

    python官方3.7.0a1版本exe安装包

    Python 3.7带来了许多新特性和改进,对学习和使用Python的人来说具有很高的价值。 首先,Python 3.7引入了数据类(Data Classes),这是通过PEP 557实现的。数据类是一种简化创建存储数据对象的类的方法,它们自动...

    Data Structures And Algorithms With Object-Oriented Design Patterns In Python

    通过这些示例,读者可以学习如何将理论应用于实际编程,提升编程技能。 总的来说,《数据结构与算法:Python中的面向对象设计模式》是一本深入浅出的教程,旨在帮助Python开发者熟练掌握面向对象设计原则,灵活运用...

    python类特性演示

    通过以上知识点的学习,我们可以更好地理解和利用Python的面向对象特性,编写出更加灵活、可复用的代码。在实际项目中,这些组件常常结合使用,以实现更复杂的设计模式和数据结构。例如,命名元组可以用于创建结构化...

    python.pdf笔记

    2. **Python社区资源**:提供了多个在线资源和工具,帮助开发者学习和使用Python。 3. **最佳实践**:总结了一系列Python编程的最佳实践,帮助提升代码质量和可维护性。 4. **未来趋势**:展望了Python在未来的技术...

    Python-BashInfinity是bash的一个现代的样板框架标准库

    下载并解压这个文件后,开发者可以深入研究其内部结构,学习如何使用这个框架来提升自己的Bash脚本开发能力。 总的来说,Python-BashInfinity是Bash脚本开发的一个重要进步,它引入了现代化的编程理念,使Bash脚本...

    python guide source3

    10. **oo**:面向对象编程(Object-Oriented Programming, OOP)是Python的另一大特色。学习类的定义、继承、封装、多态等概念,可以帮助我们设计出更加模块化、可维护的代码。 通过深入学习以上各个部分,你将能够...

    备考python选择题综合练习161-240道.pdf

    在上述文档内容中,我们可以提取出以下知识点: 1. 二叉树遍历的定义和类型:二叉树的遍历是指访问树中...掌握这些知识点对于通过Python选择题综合练习以及进一步深入学习Python编程和软件开发技术都是非常有帮助的。

    oo 面向对象action

    描述中的“oo学习”提示我们将深入理解面向对象编程的基本概念和原理,以及如何在实际项目中应用它们。这可能包括如何定义类,创建对象,以及如何利用面向对象的设计模式来优化代码结构。 标签中的“另类其它”可能...

    python核心编程(中文第二版)

    <br>对于这本书还有一点我觉得很欣慰,它不但介绍了OO思想,也很好的对函数式编程方法进行了普及,把Python语言的特点进行了很全面的介绍。对于想了解函数式编程的人,起到了很好的入门效果。而且本人也正在尝试...

    Python 2.4 Quick Reference Card

    - `-OO`: 同 `-O` 并且删除所有文档字符串。 #### 二、文件扩展名与语言关键字 **文件扩展名** - **标准扩展名**: `.py` 用于源代码文件。 - **其他扩展名**: `.pyc` 表示编译后的字节码文件,`.pyo` 代表优化过...

    Learn Python from a game

    Python,是一种面向对象的解释性的计算机程序设计语言,具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行.最喜欢她独特的语法,男人应该对自己狠一点!这是一个中文简易教程,...

    alura-python-avancando-oo

    **Python面向对象编程深入解析** 在编程领域,Python是一种广泛使用的多用途语言,以其简洁的语法和...文件`alura-python-avancando-oo-main`可能是课程的主目录,包含相关的源代码和练习文件,供学习者实践和探索。

    Python项目:基础知识

    在Python编程领域,基础知识是构建复杂项目的基础。...通过分析和学习这个文件,可以加深对Python基础知识的理解,提升编程技能。对于Python初学者来说,这是巩固理论知识并将其付诸实践的好机会。

    python爬虫 - js逆向之猿人学第一题源码加密.pdf

    特别是涉及到js逆向和加密技术的题目,对于爬虫开发者而言,是一个极佳的学习和实践机会。 本文将围绕“Python爬虫-js逆向之猿人学第一题源码加密”进行详细解读。该问题要求解密一个在线平台的加密算法,生成特定...

    Python库 | openedoo-1.1.0.16.tar.gz

    "openedoo"可能是一个开放源代码的教育或办公软件框架,"oo"可能是"open office"或者"open education"的缩写。版本号1.1.0.16表明这是一个经过多次迭代和优化的稳定版本,开发者可能已经修复了早期版本中的许多bug,...

    Data-OO.rar

    综上所述,"Data-OO.rar"的"HiData-OO"项目可能是对PyQt中数据操作与界面交互的实践,涵盖了数据库操作、MVC架构、事件处理、文件操作等多个方面,对于学习和提升PyQt编程技能大有裨益。通过深入研究这个项目,我们...

Global site tag (gtag.js) - Google Analytics