python面向对象
"""
面向对象指的就是面向中间人,将放在中间人里面的东西并且给东西赋值就是封装,如:a1.name="eric",a1.age=18
如:打印1. 小明,18岁,男,喜欢玩;2. 小明,18岁,男,打游戏 3. 小明,18岁,男,吃饭 ;共同部分就是 小明,18岁,男
用面向对象方式处理:
"""
class bar:
def add(self,args):
print(self,self.name,self.age,self.gender,args)
def del(self,args):
print(self,self.name,self.age,self.gender,args)
def update(self,args):
print(self,self.name,self.age,self.gender,args)
a1=bar() #建立中间人
"""
a1.name="eric"
a1.age=18
a1.gender="F" #这部分共同的部分放在中间人里面并进行赋值,叫做封装,对于共同的部分都可以这么处理
"""
a1.add("喜欢玩") #中间人执行方法并传参
a1.del("打游戏")
a1.update("chifan")#不是共同部分的这样传值
"""
构造方法:
当a1=bar() 时会同时做两件事:1.创建对象即中间人bar 2.如果内部有初始化函数会执行初始化函数 def__init__(self)
class bar:
def__init__(self): #此处的self就是中间人(对象);这个init方法也就是所谓的构造方法;构造方法不同于其他方法比如此处的foo,
foo方法需要手动调用,而init方法不需要,当执行a1=bar()时会自动调用
pass
def foo(self,args):
print(args)
a1=bar() #会同时做两件事:1.创建对象即中间人bar 2.如果内部有初始化函数会执行初始化函数 def__init__(self)
a1.foo("hello")
"""
"""
对于构造方法init函数,既然在创建中间人(对象)的时候会自动调用,则可以考虑在该方法下放入一些东西,比如:
class bar:
def init(self,name,age):
#此处的self就是中间人a1,name 就是Eric,age就是18
print(name,age)
a1=bar("eric","18")
进阶:
class bar:
def init(self,name,age):
#此处的self就是中间人a1,name 就是Eric,age就是18
a1.n=name #其实就是将中间人里面的放的变量赋值给name也就是 “eric”,只是将原来写在外面,此处写在方法里面;而一般将公有的部分都写在 __init__方法里面,在创建对象(中间人)的时候就进行初始化,则不需要写在外面
a1.f=age
print(name,age)
a1=bar("eric","18") #因为init方法有参数,此处需要传参,如不传,则写成下方#标识的部分a1.n="eric",a1.f="18"
a1.n="eric" 此处就是等同于写在__init__里面的;
a1.f="18" 此处就是等同于写在__init__里面的;
"""
class bar:
def init(self,n1,n2):
self.name1=n1
self.name2=n2
def foo(self):
print(self.name1)
z=bar(1,2)
print(z.name1) #打印出为1
z.foo()#打印出self.name1为1
"""
self.name1=n1就是等于z.name1=1;因为此处self就是对象也就是Z
self.name2=n2就是等于z.name2=2
此处如果将n1,n2写1,2值,则z=bar()不需要传
"""
class person:
def__init__(self,name,age):
self.n=name
self.n1=age
def show(self): #此处self指的是中间人即对象
print(f"我是{self.n},年纪{self.n1}")
zhou=person("zhouzhou",18) #建立中间人并执行init方法,将实参传到方法内形参并赋值给self.n,self.n1
zhou.show() #执行show方法,打印
liu=person("liuliu",19)#建立中间人并执行init方法,将实参传到方法内形参并赋值给self.n,self.n1
liu.show()#执行show方法
"""
类的使用场景是:存在多个共同点
"""
浙公网安备 33010602011771号