python入门:对象的建立和使用(不涉及继承)
2016-11-09 02:38
423 查看
什么是对象?
官方解释:在面对程序设计中,对象 可以看做是数据以及一系列可以存取,操作这些数据的方法所组成的集合自己理解:每个事物都可以抽象成是一个宽泛的种类,这个种类即为 类 ,而这个种类拥有代表某些个体(即为 对象 )的共同拥有的某些特征(即为 对象的属性 )和动作(即为 对象的方法)
python中对象的实现和不同
由于学习python的同学(包括我自己)都是之前学习过其他编程语言,所以这次先贴上代码,在分析和其他语言的不同class Person: #简洁的创建类的方法 def setName (self,name): #着重注意,看此函数传递的形参 self.name = name def getName (self): return self.name def greet (self): print(self) print("Hello World , I'm ",self.name) foo = Person(); #创建对象时没有new()方法,但是事实上进行了一个new的操作,具体的下面分析 bar = Person(); foo.setName("哈哈") bar.setName('呵呵') print("直接输出foo的操作==================>>>" ,foo) print("直接输出bar的操作==================>>>",bar) foo.greet(); bar.greet();
执行结果:
具体分析:
为什么类中的每个方法都要传递一个形参 self ?‘’
原因:
首先明确一点,self参数是类中独有的参数,其他独立的方法或者函数是不具备的,而且,self参数在定义类中方法时必须传递,调用时不必传递参数。
在python解释器中将对self形参执行以下操作:对象名.方法 ======>类名.方法(对象)
可以将形参self 抽象成我们学习的C++或者java中的this指针,即self函数是对于自身 对象 的引用,而不是对于 类 的引用。
对象实例化的时候是否进行了 new() 方法?
实际上,在类实例化的过程中,我们的对象已经执行了new操作。
在python解释器中,我们自定义的Person类是继承自Object类,自然也就继承了Object类中 ——new——方法,而且当你没有对这个方法进行重载的时候,会自动默认调用父类Object中的——new——方法
类中对象或者方法的私有化控制
python并不直接支持私有方式,但是可以通过一些小办法到达对属性或者方法进行私有化控制的目的:即在属性名或者方法名前面加上双下滑线class Person: name = "你猜" def __private_function (self,name): #注意看此方法 self.name = name def user_private_function (self,name):#调用私有化的方法 self.__private_function(name) def getName (self): print( self.name) foo = Person() print("类的实例化中,foo对象的name初始值:") foo.getName() foo.user_private_function("我不猜") print("进行私有方法调度之后,foo对象的name的取值") foo.getName()
运行结果:
相关文章推荐
- Python 类的定义、继承及使用对象
- Python 类的定义、继承及使用对象
- Python基础(6)- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)
- Python 类的定义、继承及使用对象 [转]
- ZODB入门 -- 如何通过面向对象的动态语言 Python 使用对象数据库
- 【Python】类和对象、继承、使用文件、存储、异常、标准库(不懂)
- Python 类的定义、继承及使用对象
- Python中类的定义、继承及使用对象实例详解
- Python 类的定义、继承及使用对象 [转]
- Python类的定义、继承及类对象使用方法简明教程
- python里面建立类创建对象继承类
- 零基础入门学习Python(18):对象(3)继承
- python入门(二十八):面向对象之继承
- 【Python】[面向对象高级编程] 多成继承,定制类,使用枚举
- Python中类的定义、继承及使用对象实例详解
- 类和对象:继承 - 零基础入门学习Python038
- PYthon类的定义、继承以及使用对象(例)
- Python 类的定义、继承及使用对象
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型