タグ付けされた質問 「methods」

メソッドは、タスクを実行するコードのブロックであり、クラスまたはオブジェクトに関連付けられています。これは、関数と手続きの非オブジェクト指向の概念に関連しています。

6
C ++ enumクラスはメソッドを持つことができますか?
2つの値を持つ列挙型クラスがあり、値を受け取ってもう1つの値を返すメソッドを作成したいと思います。型の安全性も維持したいと考えています(そのため、列挙型ではなく列挙型クラスを使用しています)。 http://www.cplusplus.com/doc/tutorial/other_data_types/はメソッドについて何も触れていませんが、どのタイプのクラスにもメソッドを含めることができるという印象を受けました。
145 c++  methods  enums 


1
Moqを使用してメソッド呼び出しを確認する
私はC#での単体テストとMoqの使い方を学ぶのが初めてです。以下は、私がテストしようとしているクラスです。 class MyClass { SomeClass someClass; public MyClass(SomeClass someClass) { this.someClass = someClass; } public void MyMethod(string method) { method = "test" someClass.DoSomething(method); } } class Someclass { public DoSomething(string method) { // do something... } } 以下は私のTestClassです: class MyClassTest { [TestMethod()] public void MyMethodTest() { string action="test"; Mock<SomeClass> mockSomeClass …
142 c#  testing  methods  moq 

8
unboundメソッドf()は、最初の引数としてfibo_インスタンスを使用して呼び出す必要があります(代わりにclassobjインスタンスを取得)
Pythonでは、クラスでメソッドを実行しようとするとエラーが発生します。 Traceback (most recent call last): File "C:\Users\domenico\Desktop\py\main.py", line 8, in <module> fibo.f() TypeError: unbound method f() must be called with fibo instance as first argument (got nothing instead) コード:(swineflu.py) class fibo: a=0 b=0 def f(self,a=0): print fibo.b+a b=a; return self(a+1) スクリプトmain.py import swineflu f = swineflu fibo = f.fibo …
139 python  methods 

12
Javaでは、派生クラスのオーバーライドメソッドから基本クラスのメソッドを呼び出す方法を教えてください。
私は2つのJavaクラスを持っています。Bは、次のように別のクラスAを拡張します。 class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { /* Another code */ } } 私は呼びたいでしょうA.myMethod()からB.myMethod()。私はC ++の世界出身ですが、Javaでこの基本的なことを行う方法がわかりません。

9
静的メソッドがメソッドと見なされるのはなぜですか?
コースの一部のコードの説明を書いていますが、誤って単語methodをfunction交換して使用しています。私は戻って言葉遣いを修正することにしましたが、私の理解の穴にぶつかりました。 私が理解していることから、サブルーチンはfunctionクラスのインスタンスに作用しない場合(その効果は明示的な入力/出力に制限されます)、methodクラスのインスタンスに作用する場合(それはインスタンスへの副作用を排除します)。 このトピックに関しては良い議論があります。受け入れられた回答の定義によれmethodば、インスタンスは暗黙的に渡されることはなく、インスタンスのメンバーにアクセスできないため、static は実際には関数である必要があります。 ただし、これは気になっていますが、methods実際にはstatic は関数ではありませんか? それらの定義により、クラスの特定のインスタンスには作用しません。彼らは関係のためにクラスに「結びついている」だけです。静的サブルーチンを「メソッド」と呼ぶ見栄えの良いサイトをいくつか見たことがあります(Oracle、Fredosaurus、ProgrammingSimplified)ので、これらはすべて用語を見落としているか、何か不足しています(私の推測は後者です)。 。 正しい文言を使用していることを確認したいのですが。 誰かがこれを片付けることができますか?

16
プロパティvsメソッド
簡単な質問:いつ(C#で)プロパティを使用することにし、いつメソッドを使用することにしますか? 私たちはこの議論に忙しく、プロパティとメソッドのどちらを使用すべきかについて議論の余地がある領域を発見しました。一例はこれです: public void SetLabel(string text) { Label.Text = text; } 例では、 LabelははASPXページ上のコントロールです。これをメソッドにするかプロパティにするか(この場合)の決定を管理できる原則はありますか? 最も一般的で包括的な答えを受け入れますが、これは私が示した例にも触れています。
135 c#  properties  methods 


7
クラスメソッドは「TypeError:…キーワード引数に複数の値を取得しました…」を生成します
キーワード引数を使用してクラスメソッドを定義すると、次のようになります。 class foo(object): def foodo(thing=None, thong='not underwear'): print thing if thing else "nothing" print 'a thong is',thong メソッドを呼び出すと、生成さTypeError: myfoo = foo() myfoo.foodo(thing="something") ... TypeError: foodo() got multiple values for keyword argument 'thing' どうしたの?

7
C#でパラメーターとして型のみを渡す
仮説的にこれを行うと便利です。 foo.GetColumnValues(dm.mainColumn, int) foo.GetColumnValues(dm.mainColumn, string) GetColumnsメソッドは、渡されたタイプに応じて内部で別のメソッドを呼び出します。 はい、ブールフラグまたは類似のフラグとしてそれを行うことができます。これを渡す方法があるのか​​どうか疑問に思ってから、次のように質問します。 typeof(arg [1])または類似... また、メソッドをオーバーライドしたり、ジェネリックスを使用したりすることもできます。これを行うにはさまざまな方法があることを知っています。これが可能かどうか知りたいだけでした。
129 c#  types  methods  parameters 

7
最終的な静的メソッドの動作
私は静的メソッドを使用してモディファイヤをいじっており、奇妙な動作に遭遇しました。 ご存知のように、静的メソッドはインスタンスではなくクラスに関連付けられているため、オーバーライドできません。 だから私が以下のスニペットを持っているなら、それはうまくコンパイルします //Snippet 1 - Compiles fine public class A { static void ts() { } } class B extends A { static void ts() { } } しかし、クラスAの静的メソッドにfinal修飾子を含めると、コンパイルが失敗し 、Bのts()はAのts()をオーバーライドできません。オーバーライドされたメソッドはstatic finalです。 静的メソッドをまったくオーバーライドできないときになぜこれが起こるのですか?
123 java  methods  static  final 

10
Pythonでインスタンス変数を取得する方法は?
すべてのクラスのインスタンス変数の配列を取得するPythonの組み込みメソッドはありますか?たとえば、次のコードがある場合: class hi: def __init__(self): self.ii = "foo" self.kk = "bar" これを行う方法はありますか? >>> mystery_method(hi) ["ii", "kk"] 編集:私は当初、クラス変数を誤って要求していました。

12
Javaインターフェイスのオプションメソッド
私の理解では、Javaでインターフェースを実装する場合、そのインターフェースで指定されたメソッドは、そのインターフェースを実装するサブクラスで使用する必要があります。 Collectionインターフェースなどの一部のインターフェースには、オプションとしてコメント化されているメソッドがあることに気づきましたが、これは正確にはどういう意味ですか?インターフェイスで指定されたすべてのメソッドが必要だと思ったので、少しスローされましたか?
120 java  methods  interface 

6
Pythonでは、メソッドではなく関数をいつ使用すればよいですか?
PythonのZenは、物事を行う方法は1つだけである必要があると述べています。 ささいな例であるChessBoardオブジェクトを見てみましょう。理事会でキングの合法的な動きをすべて利用できるようにする方法が必要だとしましょう。ChessBoard.get_king_moves()またはget_king_moves(chess_board)を記述しますか? これが私が調べたいくつかの関連する質問です: なぜPythonは「マジックメソッド」を使用するのですか? Python文字列に文字列長メソッドがない理由はありますか? 私が得た答えはほとんど決定的ではありませんでした: なぜPythonは一部の機能(list.index()など)にメソッドを使用し、他の機能(たとえばlen(list))に関数を使用するのですか? 主な理由は歴史です。関数は、タイプのグループに対して一般的であり、メソッドをまったく持たないオブジェクト(タプルなど)でも機能することを目的とした操作に使用されました。Pythonの関数機能(map()、apply()など)を使用するときに、アモルファスオブジェクトのコレクションに簡単に適用できる関数があると便利です。 実際、組み込み関数としてlen()、max()、min()を実装する方が、実際には、各型のメソッドとして実装するよりもコードが少なくて済みます。個々のケースについて疑問を投げかけることはできますが、それはPythonの一部であり、そのような根本的な変更を今行うには遅すぎます。関数は、大規模なコード破損を回避するために残しておく必要があります。 興味深いことですが、上記では実際に採用する戦略についてはあまり触れていません。 これが理由の1つです。カスタムメソッドを使用すると、開発者はgetLength()、length()、getlength()などの異なるメソッド名を自由に選択できます。Pythonは厳密な命名を強制するため、共通の関数len()を使用できます。 もう少し面白い。私の見解では、関数はある意味では、インターフェースのPythonicバージョンです。 最後に、グイド自身から: 能力/インターフェースについて話すと、「ローグ」の特別なメソッド名のいくつかについて考えさせられました。言語リファレンスでは、「クラスは、特殊な名前でメソッドを定義することにより、特殊な構文(算術演算や添え字やスライスなど)によって呼び出される特定の演算を実装できる」と述べています。しかし、構文のサポートではなく、組み込み関数の利点のために提供されているように見える、__len__またはのような特別な名前を持つこれらすべてのメソッドが__unicode__あります。それはので、おそらく、インターフェイスベースのPythonで、これらの方法は、ABCの定期的な名前のメソッドに変わるでしょう __len__になるだろう class container: ... def len(self): raise NotImplemented それについてもう少し考えますが、すべての構文操作が特定のABCで適切な通常の名前のメソッドを呼び出さ<object.lessthancomparable.lessthanないのはなぜかわかりません。「」は、例えば、あろうおそらく呼び出し「(あるいは「」「)。したがって、もう1つの利点は、Pythonをこの複雑な名前の奇妙さから引き離すことができることです。これは、HCIの改善のようです。 うーん。同意するかどうかはわかりません(図:-)。 最初に説明したいのが「Pythonの理論的根拠」です。 まず、HCIの理由から、x.len()ではなくlen(x)を選択しました(def __len__()かなり後になりました)。実際には2つの理由があり、どちらもHCIです。 (a)一部の操作では、接頭表記は単にpostfixよりも読みやすくなります-接頭辞(およびインフィックス!)の操作は数学において長い伝統があり、ビジュアルが問題について数学者が考える助けとなる表記法を好みます。式を次のようx*(a+b)に書き換える簡単さを比較してくださいx*a + x*b生OO表記を使用して同じことをやっての不器用さにします。 (b)何かの長さを要求していることlen(x)を知っているというコードを読んだとき。これは2つのことを教えてくれます。結果は整数であり、引数はなんらかのコンテナです。逆に、私がを読んだときx.len()、それがxインターフェイスを実装しているコンテナ、または標準を持つクラスから継承しているコンテナの一種であることをすでに知っている必要がありますlen()。マッピングを実装していないクラスにget()or keys() メソッドがある場合、またはファイルではないものにwrite()ください。 同じことを別の言い方をすると、「len」は組み込みの操作と見なされ ます。それを失うのは嫌だ。あなたがそれを意味していたのかどうかははっきりしませんが、 'def len(self):...'は通常の方法に降格したいようです。私はそのことを強く-1としています。 説明することを約束したPythonの理論的根拠の2番目のビットは、__special__単に見るだけでなく、 特別な方法を選んだ理由specialです。クラスがオーバーライドする可能性のある多くの操作、一部の標準(__add__またはまたは__getitem__)、一部の標準ではない(たとえば、ピクルス__reduce__は長い間Cコードでまったくサポートされていなかった)を予期していました。これらの特別な操作で通常のメソッド名を使用したくありませんでした。そのため、既存のクラス、またはすべての特別なメソッドのエンサイクロペディックメモリを持たないユーザーが作成したクラスは、実装するつもりのない操作を誤って定義してしまう可能性があります。 、悲惨な結果をもたらす可能性があります。IvanKrstićはこれをより簡潔に彼のメッセージで説明しました。メッセージは私がこれをすべて書いた後に届きました。 ---Guido van Rossum(ホームページ:http ://www.python.org/~guido/ ) これについての私の理解は、特定のケースでは、プレフィックス表記がより意味をなす(つまり、Duck.quackがquack(Duck)よりも言語の観点から理解できる)ことであり、関数も「インターフェース」を許可します。 そのような場合、私の推測は、Guidoの最初の点のみに基づいてget_king_movesを実装することです。しかし、それでも、同様のプッシュメソッドとポップメソッドを使用してスタッククラスとキュークラスを実装するなど、関数またはメソッドのどちらであるかについて、未解決の問題が数多く残っています。(私は本当にプッシュポップインターフェイスに信号を送りたいので、ここでは関数を推測します) TLDR:関数とメソッドのどちらを使用するかを決定するための戦略を誰かが説明できるか?

8
Rubyでパラメーターとしてメソッドを渡す
Rubyを少しいじってみます。そのため、私は "Programming Collective Intelligence" Rubyのアルゴリズム(Pythonで提供)を実装しようとしています。 第8章では、作成者はメソッドaをパラメーターとして渡します。これはPythonでは機能するようですが、Rubyでは機能しません。 ここにメソッドがあります def gaussian(dist, sigma=10.0) foo end これを別のメソッドで呼び出したい def weightedknn(data, vec1, k = 5, weightf = gaussian) foo weight = weightf(dist) foo end 私が得たすべてはエラーです ArgumentError: wrong number of arguments (0 for 1)
117 ruby  parameters  methods 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.