2017-03-20 14 views
-4

C#のような言語では、特定の関数に渡されるオブジェクトの型を指定する必要があります。私はそうのようなクラスがある場合:Pythonの関数に変数を渡すときに型指定をする方法はありますか?

class Thing { public static someFunc(int input) { return input * 2 } }

を私がメインにいるなら、私は、引数として渡される変数の型を指定することにより、別の関数を使用してその関数を呼び出すことができます。

public static otherFunc(Thing item, int num) 
{ 
    return item.someFunc(num) 
} 

この例は最適ではありませんが、Thingオブジェクトがその関数に渡されることを指定することによって、別の関数内でThingクラスの関数にアクセスできることを示しています。

Pythonにはこのレベルの型指定がありません。したがって、私は同じ結果を達成する方法が見当たりません。別のファイルからクラスで定義した関数があるのに、そのクラスのオブジェクトがその関数を実行するために使用される関数を通して実行したいのであれば、そのクラス関数に別の方法でどのようにアクセスできますか?関数?

+2

あなたはそれにアクセスするだけです。 'item.someFunc(num)'。 – user2357112

+0

'C#'で書いたものは、 'Python'とまったく同じ方法で書くことができます。ちょうど静的型検査はありません。 – quamrana

+1

私はこの1つで@pvgです。あなたの質問は、 "このコードをC#からPythonにどのように翻訳できますか?"いずれにしても、役に立つ答えが必要な場合は、より具体的にする必要があります。あなたはこの問題を解決するためにどのような試みをしましたか、正確にどこにいるのですか? –

答えて

0

あなたはこのようパイソン(また、別のファイルを使用することができます)でコードを書くことができます。

First.py

class Thing: 
    @staticmethod 
    def someFunc(input): 
     return input * 2 

Second.py

def otherFunc(item, num): 
    return item.someFunc(num) 

呼び出しサイト:

Main.py

from First import Thing 
from Second import otherFunc 

t = Thing() 
otherFunc(t,2) 

だから、私はあなたがPythonができないと思っていることは分かりません。

関連する問題