为何Python类语法应该不一样?

作过python的人你会发现想要的东西跟它原有的是不一样的。Python对我来讲是真的是这样。若是能够的话,对于Python中不少的我想要改的东西,我有不少的想法。如今我向您讲述其中一个:类定义的语法。
在这里插入图片描述
可是,让咱们先从定义函数的语法开始。它有一个很是好的特性:函数定义看起来像它们相应的函数调用。函数定义以下:python

def func_name(arg1, arg2):编程

当您调用该函数时,您使用相似的语法:函数名称和括号中以逗号分隔的参数列表:编程语言

x = func_name(12, 34)函数

只需调整调用中的标点符号,使其与函数定义中的位置一致,就能够看到arg1为12,而arg2为34.很好。另外核心关键:python实战是检验学习效果的惟一标准,因此不要偷懒,若是你缺少最新python实战教程,能够去小编的python技术扣裙 :易久武起而而流易思 翻译成数字就能够找到了,本身去下学习

接下来:让咱们来看一下如何定义一个带有基类的类:翻译

class MyClass(BaseClass, AnotherBase):对象

要建立此类的实例,请使用类的名称和括号,但如今并行性已经消失。您并无传递BaseClass来构造MyClass:blog

my_obj = MyClass(…)教程

若是只是看一下这个类,您并不知道要向括号中传入什么来构造一个MyClass对象。所以“def”和“class”具备很是类似的语法,并且函数调用和对象建立具备很是类似的语法,但在建立对象时,模仿函数调用中能引导您获得正确结果的写法,则彻底行不通。图片

这是专家很容易一眼就带过的事情。它们习惯于使用神秘的语法,相似的东西在稍不一样的语境中具备不一样的含义。并且不少东西在编程语言中是不可避免的:有不少符号,还有更多的概念。必然会有重叠。

可是咱们能够作得更好。为何使用看起来像函数调用的括号来表示基类?这里有一个更好的语法:

class MyClass from BaseClass, AnotherBase:

这不只避免了误导性的标点符号并行,甚至还借用了咱们用来讨论类的英语:MyClass派生自BaseClass和AnotherBase。并且“from”已是Python中的关键字。

顺便说一下,即便是专家也会偶尔会犯错误,将想用”class“的地方写成了”def“,相似的语法意味着代码是有效的。回溯以前不会发现错误,这可能使人困惑。

我并非要严肃地提议改变Python。不是由于这不会更好(或者这会更好),而是由于这样的改变在晚期是不切实际的。我想它能够添加成一种替代语法,可是很难肯定,对于初学者来讲,为类提供两种语法会更好。大家是怎么认为的呢?

相关文章
相关标签/搜索