0

私は、Java または C# で次のコードをエラーなしで書くことに慣れています。これにより、文字列から浮動小数点表現への変換を一元化できます。以下の単純な実装とは異なり、Excel で負の数のコンマまたはブラケットを処理するために、さらに多くのことが行われています。

Python でエラーが発生する理由は理解できます。Python コードはコンパイルされずに順番に解釈されtoFloat、Python が の宣言を処理している間は存在しませんZERO

toFloat関数を別のモジュールにプルしなくても、またはZERO一番上で宣言しなくても、これを行うpythonicな方法があるかどうか疑問に思っていましたか?

ZERO = toFloat('0.0')    # <-- ERROR on this line "Undefined variable: toFloat"

def toFloat(val):
    """Function to convert a string to a float"""
    return Decimal(val)
4

3 に答える 3

0

これを行うPythonの方法は次のとおりです。

def toFloat(val):
    """Function to convert a string to a float"""
    return Decimal(val)

ZERO = toFloat('0.0')

使用するものの前に定数を定義することを好むのは、Python での動作ではありません。私が行う最善のことは、不器用な回避策に頼るのではなく、このやり方を好きになることを学ぶことです. Python は Java とは異なり、すべてを多数のクラスにラップする必要はありません。これにより、多くの場合、コードが大幅に簡素化されます。一般的な経験則としてTools、あなたの例のように明確な具体的な目的を持たないクラスをPythonで作成する場合、おそらくそれをプログラムから削除する必要があります。

于 2013-11-07T18:26:34.903 に答える
0

次のコードを思いつきました。これはきれいで、宣言を一番上に保持しながら、下のコードを保持しながら変数を初期化するために使用できます。

class Tools(object):

    def __init__(self):
        self.ZERO = self.toFloat('0.0')

    def toFloat(self, val):
        return float(val)

tools=Tools()
print tools.ZERO
于 2013-11-06T20:30:02.070 に答える