如何删除Python中我不喜欢的东西?

如何删除Python中我不喜欢的东西?,python,programming-languages,Python,Programming Languages,Python是一种很棒的编程语言,但它的某些特性让我非常恼火 因此,我: 我想知道如何从语言本身中消除这些烦恼,或者 2.找一种类似Python的语言,不要有这些麻烦。 我喜欢Python的一切,除了: self:在我看来,把self作为函数的第一个参数似乎很愚蠢 双下划线:它看起来很丑陋,是一个可怕的特殊角色。 __名字总是让我觉得像是一个黑客。试着向新手程序员解释一下,或者更糟糕的是,向那些以perl、ruby或java编程为生的人解释一下。将magic变量名与magic常量“main”进行

Python是一种很棒的编程语言,但它的某些特性让我非常恼火

因此,我:

我想知道如何从语言本身中消除这些烦恼,或者

2.找一种类似Python的语言,不要有这些麻烦。 我喜欢Python的一切,除了:

self:在我看来,把self作为函数的第一个参数似乎很愚蠢 双下划线:它看起来很丑陋,是一个可怕的特殊角色。 __名字总是让我觉得像是一个黑客。试着向新手程序员解释一下,或者更糟糕的是,向那些以perl、ruby或java编程为生的人解释一下。将magic变量名与magic常量“main”进行比较,感觉是双重的 积木让我嫉妒ruby或smalltalk。我喜欢本地功能。爱他们。我容忍拉姆达。但我真的,真的希望看到一个更rubyesque的迭代器设置,我们将一个可调用的函数传递给列表,并且可调用函数可以自由形式内联定义。Python并没有真正做到这一点,因此它不像我所希望的那样是一个语言实验室。 房地产没有吸引力,部分原因是因为没有区块。我真的不想定义一个带双下划线的命名参数,很可能是两个命名函数,然后声明一个属性。对于这样一个简单的情况,这似乎需要做很多工作。只有当所有其他方法都失败,或者所有其他方法都重写setattr和getattr时,我才会这样做。
我确实意识到这可能是一些小麻烦,但对于我每天编写的语言来说,这些小麻烦可能会变得相当大。

使用UNIX bash脚本尝试回到基础上来怎么样?

这是一个巨魔,你知道自己问题的答案:

self:编写一个包装器,去掉它并从中继承。但是如果你要引用这个有问题的对象,它确实需要一些名字,除非你只是想让它神奇地呈现一个丑陋的东西

双下划线:不要使用它们。易于理解的根本不需要它们

_名称:同样,如果您愿意,可以将其命名为其他名称,并从该基类继承。我不明白这里有什么问题。您仍然需要一些东西来提供该功能

Blocks:在我看来,您似乎在尝试用python编写ruby或java程序。当然,您可以将一个可调用函数传递给迭代器,您可能应该阅读有关生成器的内容,但内联定义它会很快导致严重的代码丑陋。Python让您做得很离谱,这样您就不会在一个内联的、未命名的函数中得到一半的程序逻辑。我不明白这里有什么问题

我不明白你在说什么。当然,在大多数情况下,我不定义多个函数来使用或创建对象的属性。

是Python中Python的一个完整实现,所有的事情都是你考虑的烦恼,然而,这是一种非常高级的实现语言,它使得为您自己的目的修改语言本身的核心比以往任何时候都更容易。下载它,分叉它,并编辑它来修复任何你喜欢的东西。当然,一定要最终将编译器和运行时翻译成你的新的非Python语言

如果这是太多的工作,抱怨者很少有兴趣解决他们自己的抱怨,不管你为他们做这些工作有多容易,只要切换到Ruby,它看起来更符合你的口味-或者找到用Ruby编写的Ruby实现,我不知道它叫什么,但是这样一个强大的语言肯定会有一个,并破解它来修复你对Ruby的任何抱怨

同时,至少你的一些烦恼让我很困惑。举个例子,关于财产的咆哮:我不明白你的意思。定义R/W特性的常规方法是:

@property
def thename(self):
    """add the geting-code here""

@property.set
def thename(self, value):
    """add the seting-code here""
那你他妈的“嘿”是什么意思

使用定义命名参数 双下划线,很可能是 然后是两个命名函数,然后是 申报财产


我可以就其他抱怨提出同样困惑的问题,但让我们先看看你是否澄清了这一点,如果澄清是我不知道的那种,也就是说,你在抱怨一种语言而不知道它的基本原理,那么,我当然可以猜测这对你的可信度有什么影响;-

为什么不使用ruby呢?ruby是如何让你转向python的?你提出了一个python实现。为什么我的帖子被关闭了?这是怎么论证的?我在问一个公平而诚实的问题。去看一个语言设计课程,然后去设计你自己的语言,努力让它变得像样,然后看着有人辩论stackoverflow的优点。不要抱怨。回复你的帖子1,正如你提到的,为self写一个包装并不能真正解决问题,2个双下划线,这是pythonic用法,3个name,这也是
肾盂use@TeddyB:因此,您的大多数问题不是Python,而是与现有约定有关。只要记住,约定就是这样——如果你真的想忽略它们,你可以忽略它们。当然,如果你故意藐视那些与你共事的人,他们可能会不喜欢你。