# 面向过程:将业务分成一个个的过程和步骤 # 现象对象:将业务分成一个个的对象 # 创建类:定义某个类的对象具有的属性(变量)和方法(函数) # 建议:类的首字母大写,为的是跟对象区分开 #一、类 #class里面的每个函数都有固定的参数:self #self关键词:在类的内部表示当前对象 class Cat: def __init__(self,nick,color,age):#初始化方法,一开始写成了int,报错:TypeError: Cat() takes no arguments #猫的三个属性(变量) self.nick=nick self.color=color self.age=age self.pinzhong="加菲猫"#可以在类里面直接附上属性值 #在创建对象的时候就会调用__init__方法 def eat(self,count): print(self.nick,"猫在吃鱼,吃了",count,"条鱼") #今后使用这个猫的类,就创建这个类的对象即可,对象包含了三个属性,一个方法 #二、对象 #格式:对象名=类名(属性值1,属性值2) cat1=Cat("小毛","白色",2) cat2=Cat("小嗨","黑色",1) #对象创建好了,可以做两件事情,1:获取某个对象的属性值 print(cat1.color) #2.通过某个对象调用方法 cat1.eat(3)#在调用eat方法的时候除了传3之外,也传了cat1本身,也就是self print(cat1)#返回:<__main__.Cat object at 0x0000025D794EFC40>,表示是个Cat的对象,at后面的是该对象在内存中的地址编号 #三、练习 class Card(): def __init__(self,cnum,cpwd,cbalance): self.bankName="工商银行" self.cnum=cnum self.cpwd=cpwd self.__cbalance=cbalance#私有属性 def __login(self):#私有方法 cunm1=input("请输入银行卡号") cpwd1=input("请输入银行卡号对应的密码") if self.cnum==cunm1 and self.cpwd==cpwd1: print("登录成功") return "ok" else: print("登录失败") return "no" def addmoney(self): a=self.__login()#可以在类的内部调用其他方法,使用self作为对象名 if a=="ok": cunkuan=int(input("请输入存款金额")) allin=int(self.__cbalance)+cunkuan print("当前余额是",allin) card1=Card("669988","123qwe","1000") card1.addmoney() #print(card1.__cbalance)#会报错,AttributeError: 'Card' object has no attribute '__cbalance',私有化的属性和方法只能在类的内部被调用 #在搞面向对象的应用前呢,登录这样的操作,需要先将卡号密码都存在一个列表中然后遍历列表进行判断,现在是哪个卡号调用这个方法,就对哪个对象进行判断就可以了 #四、封装 #封装,将类中的属性或者方法私有化,私有化的属性和方法只能在类的内部被调用,就是在方法或者属性前面加上“__” #五、类的继承 #父类:将多个类中的公共属性和方法统一定义 class Animal(): def __init__(self,nick,color,age): self.color=color self.age=age self.nick=nick def eat(self): print(self.nick,"在吃") def run(self): print(self.nick,"在跑") #子类怎么继承父类 class Cat(Animal):#直接在括号中输入父类 pass c1=Cat("小毛","白色","3岁")#init方法的属性值一定要赋值上去 c1.eat() #一个父类可以有多个子类,一个子类可以有多个父类(多继承,用的很少)。object是所有类的父类
python基础语法之--类、 对象、封装、继承
猜你喜欢
转载自blog.csdn.net/qq_40333984/article/details/125513493
今日推荐
周排行