python面向对象简称_Python基础语法介绍:面向对象编程(上)

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 18:52   935   0

面向对象编程

面向对象编程,简称OOP:是一种解决软件服用的设计和编程方法。这种方法把软件系统中相似的逻辑操作、数据、状态等以类的形式描述出来,通过对象实例在软件系统中复用,从而提高软件开发效率。

类和对象

定义和关系

类:一个事物的抽象,定义了一类事物的属性和行为。类具有继承,多态,封装等特性。

class 类名: #类命名规则遵守“大驼峰”

def 方法名(self [, 参数列表]): #默认要传入一个self参数,而且第一个参数必须是self

对象:通过类创建的一个具体事物,也就是类的实例,它具有状态和行为,可以做具体的事情。

对象变量名 = 类名()

两者关系:类相当于创建对象的模板,根据类可以创建一个或者多个对象实例。

类的方法

类的构造方法

_ init _构造方法:用于对象创建时初始化

调用时间:在对象被实例化时被程序自动调用

程序不显示定义init方法,则程序默认调用一个无参init方法

对象创建过程

类的私有方法

只能在类内部调用,在类的外部无法调用

私有方法:在方法名前添加两个下划线,私有属性如是

类内部调用私有方法要使用self.private_method()的方式调用

class Comrade:

#私有方法

def __send_message(self):

print("消息已经向上级汇报")

def answer_secret(self, secret):

if secret == "芝麻开门":

print("接头成功!")

self.__send_message()#调用私有方法

else:

print("接头失败!")

comrade = Comrade()

comrade.answer_secret("芝麻开门")

类的访问权限

#设置对象属性

def __init__(self, gender, variety, name):

self.gender = gender

self.variety = variety

self.name = name

修改对象属性有两种形式:

直接对属性值进行赋值

通过方法对属性值进行修改。这是推荐方式。可以达到对数据进行封装。

类的特性一:继承和多重继承

继承

定义:在程序中,子类从父类继承,但是子类又可以提供除父类外自身独有的方法和属性。比如猫和狗都是动物,动物如果是父类的话,那么猫和狗就是动物的子类。父类通常是抽象出带有一些共性的特征和方法的类。

#父类Animal

class Animal:

def eat():

print("eat")

#Dog

class Dog(Animal):

def shout()

print("汪汪汪")

wangcai = Dog()

#调用父类的eat

wangcai.eat()

#调用自身成员方法

wangcai.shout()

继承注意事项

子类的非有属性、方法,会被子类继承

子类中方法的查找:先子类方法 =》后父类方法

子类可以继承祖先类的非私有属性和方法

在子类中调用父类的方法:ClassName.Method(self)

多重继承

定义:一个类可以从多个父类继承。

多继承的定义方式:

class AI:

#人脸识别

def face_recongnition(self):

print("人脸识别")

def data_handle(self):

print("AI数据处理")

class BigData:

def data_analysis(self):

print("数据分析")

def data_handle(self):

print("BigData数据处理")

class Python(BigData, AI): #多重继承

def operation(self):

print("自动化运维")

对于多重继承,子类调用查找同名方法的顺序:

取决于小括号内继承父类从左到右的顺序查找。

可以通过类的方法 _ mro _来查看查找顺序。

类的特性二:多态

定义:一个抽象类有多个子类,不同的类表现出不同的形态。比如狗和猫,他们都会叫,但是叫的声音是不同的。

子类对父类允许访问的方法的实现过程进行重新编写

在子类中定义与父类同名的方法。子类可以根据需要,定义合适的方法实现逻辑。

综合例子: 继承和多态

class Animal:

def __init__(self):

print("---animal构造方法---")

def __private_method(self):

print("私有方法")

def eat(self):

print("----吃----")

def drink(self):

print("----喝----")

def run(self):

print("----跑----")

class Dog(Animal):

def __init__(self):

print("dog构造方法")

#父类方法重写

def run(self): #多态

print("摇着尾巴跑")

def hand(self):

Animal.run(self) #在子类中调用父类

print("------握手-----")

class GoldenDog(Dog):

def guid(self):

print("我能导航!")

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP