美文网首页Python学习快车
干货大派送——Python的面向对象思维与类的一些方法!

干货大派送——Python的面向对象思维与类的一些方法!

作者: 松珏 | 来源:发表于2019-01-04 13:24 被阅读15次

    有基础或者是学过其他编程的小伙伴,想必对面向对象(Object Oriented,OO)一定不陌生。面向对象(Object Oriented,OO)是软件开发的方法。它是一种对现实世界理解和抽象的方法。面向对象的概念和应用包含了程序设计、软件开发、数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象的产生是计算机发展的产物。下面我们带着下面两个问题,来聊聊Python中面向对象。

    Python3中的对象是什么?

    对象(object ):通过类定义的数据结构。包括两个数据成员(类变量和实例变量)和方法。

    类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

    数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

    类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

    实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

    方法:类中定义的函数。

    如何在Python3中实现面向对象?

    01

    02

    03

    04

    05

    完整代码

    输出结果为:runoob 说: “我10岁”。

    继承

    继承

    多继承

    总结:

    Python是一门面向对象的语言,当我们将任何事情当做对象去看待时,会有很多的对象,我们要将不同的对象进行分类,类的概念因此就诞生了。不同的对象有不同的属性和行为(方法),就像人有不同的性格和做事风格一样。

    Python类的基本方法

    1. __str__和__repr__方法

    功能

    打印类的属性。

    调用__str__样例

    demo = Demo()print (demo)

    调用__repr__样例

    demo = Demo()demo

    2. __len__方法

    功能

    获取字符串长度

    样例

    demo = Demo() print(len(demo))

    3. __iter__方法

    功能:

    迭代的意思是重复做一些事很多次---就像在循环中做的那样。__iter__ 方法返回一个迭代器,所谓迭代器就是具有next方法的对象,在调用next方法时,迭代器会返回它的下一个值。如果next方法被调用,但迭代器没有值可以返回,就会引发一个StopIteration异常。

    样例:

    class TestIterator: value = 0 def next(self): self.value += 1 if self.value > 10: raise StopIteration return self.value def __iter__(self): return self>>> ti = TestIterator()>>> list(ti)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    4. __getitem__方法

    功能

    希望通过索引获取数据。

    样例

    class DataBase:

    '''Python 3 中的类'''

    def __init__(self, id, address):

    '''初始化方法'''

    self.id = id

    self.address = address

    self.d = {self.id: 1,

    self.address: "192.168.1.1",

    }

    def __getitem__(self, key):

    # return self.__dict__.get(key, "100")

    return self.d.get(key, "default")

    data = DataBase(1, "192.168.2.11")

    print(data["hi"])

    print(data[data.id])

    结语:

    学好面向对象(Object Oriented,OO)是非常重要的,它不仅仅对我们学Python很重要,在我们学其他编程语言的时候,面向对象也是必不可少的。希望我的文章对您学习面向对象有所帮助。喜欢本文的小伙伴可以转发或点波关注喔!

    写在最后:

    想学Python或者对Python感兴趣的老铁,可以私信小编发送1314,小编这里有适合Python初学者学习的资料(最新版的Python资料),免费送给大家!

    本文来自网络,如有侵权,请联系小编删除!

    相关文章

      网友评论

        本文标题:干货大派送——Python的面向对象思维与类的一些方法!

        本文链接:https://www.haomeiwen.com/subject/pcbhrqtx.html