Python面向对象

一、面向对象

面向对象是当前最流行的一种软件设计模式,但是并不意味着一切都是面向对象,很多开发者还保留者面向过程或者说是面向函数编程的习惯。

面向对象的出现,可以很好的实现代码结构化的管理。

使用面向对象的编程开发,可以有效的实现代码的可重用性设计。

面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,所以,面向对象的开发更像是一个具备标准的开发模式。

面向对象程序设计开发有三个主要特征:

1、封装性

把对象的成员属性和行为看成一个密不可分的整体,将这两者封装在一个不可分割的独立单位(即对象)中

信息隐蔽,把不需要让外界知道的信息隐藏起来,有些对象的属性以及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知晓;或只允许使用对象的功能,而尽可能隐蔽对象的功能实现细节。

2、继承性

首先拥有反映事物一般特性的类,然后在其基础上派生出反应特殊事务的类。如已有的汽车的类,该类中描述汽车的普遍属性和行为,进一步再生产轿车的类,轿车的类是继承于汽车类,轿车类不但拥有汽车类的全部属性和行为,还增加轿车特有的属性和行为。

3、多态性

多态是允许程序中出现重名现象,并且依据环境的不同同样的操作可以实现不同的功能,多态的特性使程序的抽象程度和简捷程度更高,有助于程序设计人员对程序的分组协同开发。

二、面向对象的类与对象

面向对象编程中类与对象是基本的组成单元,类是对一个客观群体特征的抽象描述,而对象表示的是一个个具体的可操作的事物。类是共性的抽象,对象是个体的体现。类是对象的模板,对象是类的实例。

类中的组成一般会有两个主要组成部分:

属性:描述不同对象的主要特征

方法:所有同类物种所具备的功能

类与对象的定义

如果想要在程序中进行类的定义,则需要使用class关键字,在进行类定义的时候,类中的方法虽然处于函数对等的功能,但是两者调用的环境是不同的,因为函数必须要通过对象调用。

当类定义完成之后就可以进行对象的创建,Python中的一切的对象(变量都是对象,因为Python中的数据类型全部都属于引用数据类型),都可以在未声明类型的情况加直接使用,而对于此时的类也一样,只要进行类对象的实例化即可。

class定义类的形式几乎是各个语言通用的关键字,同时Python最大特点所有的变量不需要声明就可以直接使用。类中对象的属性也可以直接使用,不同的对象拥有不同的属性内容,每一个对象都是一个独立的个体,彼此之间没有任何交集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Member:
    """
    定义一个实现类属性信息的设置,在该方法中需要接收两个参数的内容,而这两个参数的内容
    就是要保存的属性内容
    Python语言中最大的技术特点在于,属性可以直接使用(不需要进行先期定义)
    """
    def set_info(self,name,age):
        self.name=name
        self.age=age
    def get_info(self):
        print(self.name,self.age)
        return self.name,self.age
def main(): #自定义主函数
    Member1=Member()  #实例化一个Member类的对象
    #当获取了类实例化的对象之后,就可以直接使用对象进行类中的方法的调用
    Member1.set_info('zk',29)
    Member2=Member()
    print("Member1:",Member1.name)
    print("Member1:",Member1.age)
    Member2.set_info('lwt',29)
    Member1.get_info() #获取对象属性信息,此时是通过类方法返回的
    Member2.get_info()
 
if __name__ == '__main__':
    main()

 执行结果:

 函数和方法的区别

函数在定义在类的外部,而方法定义在类的内部。函数和方法都是代码可重用的一种机制。

1
2
3
4
5
6
7
8
9
10
11
12
class classdemo:
    def __init__(self):
        print("这是一个类")
def function1():
    return "这是一个方法"
def main(): #自定义主函数
    class1=classdemo()
    print(type(class1))
    print(type(function1))
 
if __name__ == '__main__':
    main()

执行结果:

type是一个内置函数可以查看类型

所有方法定义的时候一定是定义在类中的,并且方法中都会存在一个默认的参数"self",这个参数并不需要你在调用的时候,明确的进行传递,因为其描述的当前调用它的对象,而function1属于一个自定义的函数,可以直接通过函数名称进行调用,返回的类型是一个function。

 

  

 

 

 

posted @   leagueandlegends  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-11-24 跨交换机实现VLAN间通信
2022-11-24 配置VLAN间通过VLANIF接口通信示例
2022-11-24 配置基于端口划分VLAN示例
2018-11-24 java.lang.OutOfMemoryError: GC overhead limit exceeded异常处理
2018-11-24 Spring 属性依赖注入
2018-11-24 Spring-Bean生命周期
点击右上角即可分享
微信分享提示