私の質問をよりよく理解するために、次の例を検討してください。
public class ClassName
{
public ClassName { }
public string Val { get; set; }
...
}
ClassName cn = new ClassName();
cn.Val = "Hi StackOverflow!!";
Python でこのコードに相当するものは何ですか?
私の質問をよりよく理解するために、次の例を検討してください。
public class ClassName
{
public ClassName { }
public string Val { get; set; }
...
}
ClassName cn = new ClassName();
cn.Val = "Hi StackOverflow!!";
Python でこのコードに相当するものは何ですか?
他の回答に示されているように、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")
この意味で、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
class a:
pass //you need not to declare val
x=a();
x.val="hi all";