1

私の質問をよりよく理解するために、次の例を検討してください。

public class ClassName 
{
    public ClassName { }

    public string Val { get; set; }

    ...
}

ClassName cn = new ClassName();

cn.Val = "Hi StackOverflow!!";

Python でこのコードに相当するものは何ですか?

4

3 に答える 3

6

他の回答に示されているように、Pythonオブジェクトにメンバーを簡単に追加できます。C#のようなより複雑なget / setメソッドについては、組み込みのプロパティを参照してください。

class Foo(object):
   def __init__(self):
      self._x = 0

   def _get_x(self):
      return self._x

   def _set_x(self, x):
      self._x = x

   def _del_x(self):
      del self._x

   x = property(_get_x, _set_x, _del_x, "the x property")
于 2011-07-30T11:37:17.693 に答える
2

この意味で、Pythonにはゲッターとセッターがありません。次のコードは、上記のコードと同等です。

class ClassName:
    pass

cn = ClassName()

cn.val = "Hi StackOverflow!!"

Pythonにはゲッター/セッターについての言及がないことに注意してください。設定するまで宣言する必要はありませんval。カスタムゲッター/セッターを作成するには、たとえば次のようにします。

class ClassName:
    _val = "" # members preceded with an underscore are considered private, although this isn't enforced by the interpreter

    def set_val(self, new_val):
        self._val = new_val

    def get_val(self):
        return self._val
于 2011-07-30T11:31:20.873 に答える
0
class a:
 pass    //you need not to declare val
x=a();
x.val="hi all";
于 2011-07-30T11:29:33.597 に答える