#!/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 零基础学习篇-08Quiz oo、game of life.zip
python 机器学习 Scikit-learn 中文文档 有监督学习
<br>对于这本书还有一点我觉得很欣慰,它不但介绍了OO思想,也很好的对函数式编程方法进行了普及,把Python语言的特点进行了很全面的介绍。对于想了解函数式编程的人,起到了很好的入门效果。而且本人也正在尝试...
Alura Python推进对象定向该存储库使用python在OO课程中存储学习文件
Python,是一种面向对象的解释性的计算机程序设计语言,具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行.最喜欢她独特的语法,男人应该对自己狠一点!这是一个中文简易教程,...
但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而强化自身的编程能力。 基础知识 在 Python 中异或操作符为:^,也可以记作 XOR。按位异或的意思是:相同值异或为 0,不同值异或为 1。...
本篇介绍面向对象编程的( 封装、多态 )相关知识点,一起学习,共同进步 Python专栏请参考:人生苦短-我学python 文章目录一.封装二.多态三.类属性和实例属性四.静态方法和类方法 一.封装 面向对象三大特性:...
3对Tk有兴趣,别以为她是已经过时的技术,如果丧失了学习的兴趣,那肯定无法完成了; 4不要以Ctrl+C/Ctrl+V的方式使用本教程(虽然它可以这样直接运行),自己输入,你会发现自己原来也会犯这样的错误; 5安装了...
敏捷软件开发:原则、模式与实践.pdf 学习敏捷开发,设计模式,OO设计原则,经典巨作
oo-melons-hiercarchy
在线法官和一些基本知识 ... 打算在我学习的同时分享一些知识。 使用电子法官,OO基础知识,数据结构/复杂性。 更多关于 : 使用在线法官,例如Urionlinejudge,CD-MOJ和Codeforce。 以提高技能为原则,例如错误处理。
建立在Java的基础上,同时,吸收了其他语言的优点,比如:Python、 Ruby 和 Smalltalk Java开发人员,上手快,几乎没有学习曲线 提供静态类型检查和编译,提高性能、健壮性 支持函数编程、闭包等语法,...
面向对象
详解vite2.0配置学习(typescript版本) 介绍 尤于溪的原话。 vite与 Vue CLI 类似,vite 也是一个提供基本项目脚手架和开发服务器的构建工具。 vite基于浏览器原生ES imports的开发服务器。跳过打包这个概念,...
'oo OOOO oo\_ ~+~+~+~+~+~+~+~ 信号火车 用神经网络学习时间相关的非线性音频效果 代码作者:Scott Hawley,Stylianos Mimilakis和Ben Colburn编写的一些代码 演示页: : 其他演示选项: , (但Colab的运行...
【ASP.NET编程知识】那些年,我还在学习asp.net(二) 学习笔记.docx
): ://docs.google.com/presentation/d/1ykAQ_GpzEoRVJeMr1hXUHlJSBpzW2P6Wuzud8RTF0oo/edit#slide=id.p 2020-11-27(系统) :FedML架构已发展成为包含多个GitHub存储库的生态系统。 以FedML为核心,我们可以...
这是我学习javascript中面向对象特性的一点总结。希望对具有其他语言的面向对象设计经验的朋友理解javascript的OO有所帮助。我具有c++,java和python的面向对象设计的经验。 总的感受, javascript作为一种弱类型的...
计算机培训学习总结
java培训学习总结