Python是一种很棒的编程语言,但是关于它的某些事情只是让我烦恼不已。
因此,我:
1)想知道如何从语言本身中消除这些烦恼,或者
2)找到一种类似Python的语言,没有这些烦恼。
<小时/> 我喜欢Python的所有除了:
我确实意识到这可能是小烦恼,但对于我每天编程的语言,这些小烦恼可能会变得非常大。
答案 0 :(得分:7)
pypy是Python本身的一个完整的Python实现(包含你认为烦恼的所有内容,然而它是一种非常高级的实现语言,它甚至可以更容易地改变语言本身的核心比以往任何时候都)。下载它,分叉它,并编辑它来修复你喜欢的任何东西(当然,最好还是将编译器和运行时转换成你的新的非Python语言)。
如果这只是太多的工作(抱怨者很少有兴趣修复他们自己的抱怨,无论你为他们做这样的工作多么容易),只需切换到Ruby,这似乎更符合你的口味 - 或者找到用Ruby编写的Ruby实现(我不知道它是如何被调用的,但肯定会有这样一个强大的语言)和hack 那个一个(用来修复你对Ruby的抱怨)。
与此同时,至少你的一些烦恼让我感到非常困惑。举例来说,关于财产的咆哮:我不明白你的意思。定义R / W属性的常规方法是:
@property
def thename(self):
"""add the geting-code here""
@property.set
def thename(self, value):
"""add the seting-code here""
那么是什么意思>>
定义一个命名参数(带 双重下划线,最有可能)和 然后是两个命名函数,然后是 声明一个属性
???
我可以问其他问题同样困惑的问题,但是让我们等一下你是否先澄清这个问题(如果澄清的是那种“哦,我不知道它”,即你在抱怨一种语言没有了解其基本原理,当然,我可以猜测这对你的可信度有什么影响; - )。
答案 1 :(得分:2)
这是一个巨魔,你知道自己问题的答案:
self:编写一个废弃它的包装器并继承它。但是如果你要引用有问题的对象,它确实需要一些名字,除非你只是想让它神奇地存在(确实是一个丑陋的东西)......
双重下划线:不要使用它们。简单。它们绝不是必需的。
_name_
:再次,如果你愿意,可以将其称为其他内容,并从该基类继承。我不知道这里的问题是什么。你仍然需要一些东西来提供这种功能。
阻止:听起来像你正试图在python中编写ruby或java。你当然可以将一个可调用的函数传递给一个迭代器(你应该阅读有关生成器的内容),但是将其定义为内联会导致严重的代码丑陋。 Python使你可以在线下完成,这样你就不会在内联的未命名函数中得到一半的程序逻辑。我不知道这里的问题是什么。
属性:我不明白你在说什么。在大多数情况下,我当然不会定义多个函数来使用或创建对象的属性。
答案 2 :(得分:0)
如何使用UNIX bash脚本回归基础知识?