做网站最好的软件,东莞企业怎么做网站建设,wordpress转发,做婚姻网站流程Python学习笔记-Day7
面积对象
面向对象编程#xff08;Object Oriented Programming#xff0c;简称 OOP#xff0c;面向对象程序设计#xff09;是一种程序设计思想。用面向过程的思想设计程序时#xff0c;程序是一条条指令的顺序执行#xff0c;当指令变得多起来时Object Oriented Programming简称 OOP面向对象程序设计是一种程序设计思想。用面向过程的思想设计程序时程序是一条条指令的顺序执行当指令变得多起来时它们可以被分隔成我们先前实验中讲解过的函数。而面向对象编程则是将对象视为程序的组成单元程序的执行通过调用对象提供的接口完成。类与对象定义一个简单的类class 类名: #初始化方法然后函数在类中称为方法 def __init__(self): pass类的使用#定义一个类名为Dog class Dog: #初始化方法 def __init__(self, name, age): #设置对象的属性值 self.name name self.age age #定义了New_dog函数在类中函数也称方法 def New_dog(self): print(Dog is {} ,year old {}.format(self.name, self.age)) #实例化Dog类变成对象然后赋值给dog dog Dog(dahuang, 19) #通过实例化后的值然后再访问里面的方法 dog.New_dog()#定义一个类为Dog class Dog: # 初始化方法 def __init__(self,name): #添加对象的属性值 self.name name #调用了repr魔术方法只有在交互式都会触发该方法 def __repr__(self): #特殊方法 #print() 时自动调用 return Dog: {}.format(self.name) dog Dog(two dog) print(dog) print(dog.name)class Dog: def __init__(self, name, age): self.name name self.age age def __str__(self): # ✅ 特殊方法 # print() 时自动调用 return fDog: {self.name} def __pre__(self): # ❌ 这不是特殊方法 # 只是普通方法不会自动调用 return fDog: {self.age} dog Dog(dahuang, 18) print(dog) # 自动调用 __str__()封装在面向对象的语言中封装就是用类将数据和基于数据的操作封装在一起隐藏内部数据对外提供公共的访问接口。可以理解为API接口#定义一个Dog的类 class Dog(object): def __init__(self, name): self.name name #获取狗的名字的方法 def get_name(self): #返回的狗的名字为全部小写 return self.name.lower() #定义一个修改狗的名字的方法可以通过传参数修改value def set_name(self, value): self.name value #狗的行为特征 def bark(self): print(self.get_name() is making sound wowowowo) #定义一个Cat的类 class Cat(object): def __init__(self, name): self.name name #获取猫的名字 def get_name(self): #修改猫的名字为全部小写 return self.name.lower() #修改猫的名字 def set_name(self, value): self.name value #猫的行为特征 def mew(self): print(self.get_name() is making sound mimimimi) #调用类之前先实例化成对象 #实例化 dog Dog(DAhuang) #调用对象中的方法 print(dog.get_name()) #调用对象中的方法通过这个方法来修改狗的名字 dog.set_name(er ha) #打印 print(dog.get_name()) dog.bark()继承可以快速创建新的类使得子类对象实例具有父类的实例域和方法或子类从父类继承方法使得子类具有父类相同的行为在 Python 中object是所有类的根类当你定义一个类时即使不显式指定它也会默认继承自objectPython 3 中class Animal:和class Animal(object):是等价的#继承 #object class Animal(object): def __init__(self,name): self.name name def get_name(self): return self.name def set_name(self,name): self.name name def make_animal(self): pass #继承父类的 class Dog(Animal): def make_animal(self): print(self.get_name() is making sound wangwangwangwang) class Cat(Animal): def make_animal(self): print(self.get_name() is making sound miaomiaomiaomiao) #实例化并且赋值给dog dog Dog(er ha) cat Cat(jafeimao) #通过dog实例化后的对象调用对象里的方法 dog.make_animal() cat.make_animal()多继承#创建一个类然后命名为A class A(): #初始化方法 def __init__(self): #定义或者添加属性命名youzi self.name youzi #定义一个技能为Python def jinanA(self): print(-------------python-------------) #定义一个类为B class B(): #初始化方法 def __init__(self): self.age 19 # 继承前者优先使用 def jinanB(self): print(-------------网络安全---------------) #定义一个类xueyuan继承A和B的方法 class xueyuan(A, B): #初始化方法 def __init__(self): #调用父类A的初始化方法 #当子类继承多个父类时Python不会自动调用所有父类的 __init__ 方法需要手动调用 A.__init__(self) B.__init__(self) def Test(self): print(------------xueyuan---------------) #实例化类变成对象 person xueyuan() #通过对象调用类中的方法 person.jinanA() person.jinanB() person.Test()多态#!/usr/bin/env python3 class Animal(): def who(self): print(I am an animal) class Dog(Animal): def who(self): print(I am a dog) class Cat(Animal): def who(self): print(I am a cat) def Func(value): value.who() dog Dog() cat Cat() #利用函数传入对象这个实现的方法就是多态 Func(dog) Func(cat)私有属性私有属性privateprotected名称私人的受保护的用法__ 两个下划线代表私有的属性_ 一个下划线代表受保护的属性class Myclass: def __init__(self): self._num1 0 self._num2 0 def __est(self): self._num1 1 print(self._num1) myclass Myclass() #这里会提示找不到方法名所以私有属性只有类中才能调用 myclass.__test() #这里受保护的可以直接修改但是不建议这样做 myclass._num1 10 print(myclass._num1)