2016 - 2024

感恩一路有你

python创建对象的七种方式 python是谁创建的?

浏览量:1432 时间:2023-03-31 17:28:29 作者:采采

python是谁创建的?

Python是由荷兰数学和计算机科学研究所的吉多·范·罗苏姆在20世纪90年代早期设计的,用来替代一种叫做ABC的语言。Python提供了高效的高级数据结构,也可以用于简单有效的面向对象编程。Python的语法和动态类型,以及解释语言的性质,使它成为一种在大多数平台上快速编写脚本和开发应用程序的编程语言。随着版本的不断更新和新语言功能的加入,逐渐用于独立的大型项目的开发中。

python有对象吗?

当然,我的头发在这里,但它 有点悬当它 它不在这里。现在是看脸的时代。程序员经常因为加班严重,压力大而掉头发。这可能会影响你的形象,但它不会。;不代表你可以。;don'不要找一个人,去寻找另一个人。一些女孩不 不一定看长相,好女孩看性格。只要你真的对她和唐好。;不要伤害她,你可以找到他们。我身边很多地中海兄弟都找到媳妇了。关键是别人对媳妇很好,你也可以。

如何编写Pythonic对象?

那就说清楚。

在我们开始探索如何编写pythonic对象之前,让 让我们弄清楚这个术语的意思。It 这不是关于PEP8和遵守它的规则来编写漂亮的Python代码。It s关于写对象,最大限度的使用Python数据模型的概念,所以可以像Python标准库对象一样自然的使用。

这个想法是将Python ADN注入到我们的用户定义对象中,并使它们变异,表现为本地Python对象。为此,我们将实现一个vector类来表示多维向量。

下面的代码用最小的实现表示Vector类。矢量由它的坐标来表示。

向量坐标存储在浮点数组中;注意,数组中的元素类型被强制设置为数组类型 "d "浮点运算。我们可以将任何iterable传递给Vector的构造函数,因为array的构造函数是作为内部容器来接受任何iterable (tuple,list等。).

当我们打印一个vector对象本身时,注意我们得到的是它的引用(CPython的内存地址)而不是它的坐标。让 s通过在类中实现_str_ method来改变它,让它有更友好的输出,比如(x,y,z,…)。

当我们打印一个vector对象本身时,注意我们得到的是它的引用(CPython的内存地址)而不是它的坐标。让 通过在类中实现_str_ method来改变它,使它有一个更友好的输出,比如(x,y,z,…)注意,我们使用了从数组创建的元组的字符串表示。

__str_不是Python数据模型用来打印对象的唯一方法;_repr_还用于提供更多面向调试的对象表示可以使用eval函数对该表示进行评估以创建相同的对象。

在前面的代码块中,请注意当与eval一起使用时,repr的返回值允许我们创建一个新的vector。reprlib的使用允许我们在数组包含太多元素时不打印数组的所有元素,就像vector v2一样使用它。

Python迭代为了确保我们能够循环遍历向量并对其进行解包,我们需要使它们迭代。为此,我们必须在我们的类中添加_iter_ method。

Python长度计算为了通过将对象分配给len()函数来获得矢量中的坐标数,必须将_Len_ method添加到该类中。

应用于两个矢量对象的Python比较运算符将比较它们的引用,而无需调整类来支持比较。要改变这种行为,您必须实现 "情商与智商方法。在我们的例子中,两个向量相等当且仅当它们具有相同的坐标和相同的顺序。

让 让我们花点时间来分析这个新方法:通过调用len()函数来使用len方法。

通过将self和其他参数传递给zip函数来使用iter方法,该函数接受iterable作为参数。

Pythonic的绝对值

对于此示例,我们使用__abs__方法返回由以下表达式定义的向量的欧几里德范数:

Pythonic式布尔求值对于vector类的当前实现,在计算vector的布尔值时,我们有以下行为。

在我们的类中,如果没有bool方法,那么对bool()函数的调用就会引用这个方法。如果长度等于0,则对象的计算结果为false,否则为true。

让 让我们通过实现一个方法来改变这种行为。如果向量的欧几里德范数不等于0,让它返回True,否则返回false。

Pythonic切片

Python中的切片旨在通过指示要检索的元素的索引或通过指示切片来从初始集中获取子集。

一个对象的切片返回同类型的另一个对象。getitem方法是要更新的方法,使vector对象具有这种能力。

注意,通过使用切片,返回的对象也是一个vector对象。

结论我们在本教程中实现的Dunder方法不是唯一可以使用的方法。其他的,比如字节、散列、getatrr和格式,可以用来改变用户定义对象的行为。这些方法并不是每次定义一个新的类就实现,这要看需求,这是Python数据模型的优势。

欢迎关注

对象 Python 方法 向量

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。