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

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

概述我真的希望这不是数百万新手提出的问题,但我的搜索并没有真正给我一个满意的答案. 所以我的问题很简单.类基本上是具有自己的命名空间的函数的容器吗?除了提供单独的命名空间和保持函数同时使它们可以作为类属性调用之外,它们还有什么其他功能?我问在python上下文. 哦,谢谢大多数人的大力帮助! >比函数更重要的是,类实例包含数据属性,允许您定义超出语言内置的新数据类型;和 >他们支持 inheritan 我真的希望这不是数百万新手提出的问题,但我的搜索并没有真正给我一个满意的答案.

所以我的问题很简单.类基本上是具有自己的命名空间的函数的容器吗?除了提供单独的命名空间和保持函数同时使它们可以作为类属性调用之外,它们还有什么其他功能?我问在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是一个类,所以使用它违反了没有类的假设:)

总结

以上是内存溢出为你收集整理的python – 类我是如何理解它们的.如果我错了,请纠正我全部内容,希望文章能够帮你解决python – 类我是如何理解它们的.如果我错了,请纠正我所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1195872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存