加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 类我是如何理解它们的.如果我错了,请纠正我

发布时间:2020-12-20 13:03:56 所属栏目:Python 来源:网络整理
导读:我真的希望这不是数百万新手提出的问题,但我的搜索并没有真正给我一个满意的答案. 所以我的问题很简单.类基本上是具有自己的命名空间的函数的容器吗?除了提供单独的命名空间和保持函数同时使它们可以作为类属性调用之外,它们还有什么其他功能?我问在python
我真的希望这不是数百万新手提出的问题,但我的搜索并没有真正给我一个满意的答案.

所以我的问题很简单.类基本上是具有自己的命名空间的函数的容器吗?除了提供单独的命名空间和保持函数同时使它们可以作为类属性调用之外,它们还有什么其他功能?我问在python上下文.

哦,谢谢大多数人的大力帮助!

解决方法

>比函数更重要的是,类实例包含数据属性,允许您定义超出语言内置的新数据类型;和
>他们支持 inheritance和 duck typing.

例如,这是一个适度有用的课程.由于Python文件(使用open创建)不记得自己的名字,让我们创建一个文件类.

class NamedFile(object):
    def __init__(self,name):
        self._f = f
        self.name = name

    def readline(self):
        return self._f.readline()

如果Python没有类,你可能会使用dicts代替:

def open_file(name):
    return {"name": name,"f": open(name)}

不用说,一直调用myfile [“f”].readline()会导致你的手指受伤.您当然可以在NamedFile模块(命名空间)中引入函数readline,但是您必须始终使用该精确函数.相比之下,NamedFile实例可以在需要具有readline方法的对象的任何地方使用,因此在许多情况下它将是文件的插件替换.这就是polymorphism,这是基于OO /类的编程的最大好处之一.

(另外,dict是一个类,所以使用它违反了没有类的假设:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读