Python 面向对象(一)self 封装
1.self 参数
class Foo: def start(self,value): print(self,type(self),value) # <__main__.Foo object at 0x0000000003640AC8> <class '__main__.Foo'> aaa print(Foo,type(Foo)) # <class '__main__.Foo'> <class 'type'> f_obj = Foo() print(f_obj,type(f_obj)) #<__main__.Foo object at 0x0000000003640AC8> <class '__main__.Foo'> f_obj.start('aaa') #传递了两个参数,一个将f_obj传给self,一个是将aaa传给value
# 类中多个函数使用同一个参数,可以把这个变量封装到对象中 # class student: # def name(self,name,school): # print('i am %s i am in %s'% (name,school)) # def like(self,school): # print('i like my school %s'% school) # # stu = student() # stu.name('zhangsan','qinghua') # stu.like('qinghua') class student: def name(self,name): # self参数传递的就是对象 print('i am %s i am in %s'% (name,self.school)) # 直接通过self.school 就访问到了变量 def like(self): print('i like my school %s'% self.school) stu = student() stu.school = 'qinghua' #将变量封装到对象中 stu.name('zhangsan') stu.like()
#推荐使用这种封装方法 class student: def __init__(self,name,school): #构造方法 self.country = 'china' #所有对象都有这个变量 self.name = name self.school = school def getcountry(self): return self.country def getname(self): return self.name def getschcool(self): return self.school stu1 = student('zhangsan','qinghua') #实例化对象 执行__init__方法,将参数封装到对象 print(stu1.getcountry()) #china print(stu1.getname()) #zhangsan print(stu1.getschcool())#qinghua stu2 = student('lisi','beida') print(stu2.getcountry()) #china print(stu2.getname())#lisi print(stu2.getschcool())#beida

浙公网安备 33010602011771号