您的位置:首页 > 编程语言 > Python开发

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 对象 编程语言