900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python入门——P37类和对象:面向对象编程

python入门——P37类和对象:面向对象编程

时间:2023-02-14 06:47:01

相关推荐

python入门——P37类和对象:面向对象编程

self是什么

class相当于房子图纸,每个对象是参照图纸建立的实际的房子,self相当于每一栋房子的门牌号,在下面这段代码里,每个对象都是调用了自己那栋房子里的方法,就是因为self

tips:在方法里,self必须是第一个

class Build():def setname(self,name):self.name = namedef call(self):print("your name is %s" % self.name)building1 = Build()building1.setname("white house")building2 = Build()building2.setname("black house")building1.call()building2.call()

python的魔法方法

如果你的对象实现了魔法方法中的某一个,这个魔法方法就会在特殊的情况下被python所调用

tips:此类魔法方法会被双下滑线所包围

class Build():def setname(self,name):self.name = namedef call(self):print("your name is %s" % self.name)building1 = Build()building1.setname("white house")building2 = Build()building2.setname("black house")building1.call()building2.call()class Build():def __init__(self,num): #redefine class make it add a parameterself.num = numdef kick(self):print("your num is %s" % self.num)building3 = Build(3) # new objectbuilding3.kick() # call method

公有和私有

对象的属性和方法都是公有的,在python中定义私有变量只要在变量名或函数名前加“__”两个下划线,那么这个变量或函数就会变成私有的了,例子如下

class person():name = "carl"a = person()print(a.name)

carl

class person():__name = "carl"a = person()print(a.name)

AttributeError: 'person' object has no attribute 'name'

想要调用则需在类内进行调用,代码如下

class person():__name = "carl"def kick(self):print("your name is %s" % self.__name)return "finish"a = person()print(a.kick())

your name is carlfinish

但其实python的私有只是伪私有,也可以直接通过别的方法进行调用

class person():__name = "carl"a = person()print(a._person__name)

carl

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。