在Python中如何实现public string blaBla { get; set; }?

1 投票
3 回答
1853 浏览
提问于 2025-04-16 22:34

为了更好地理解我的问题,考虑以下示例:

public class ClassName 
{
    public ClassName { }

    public string Val { get; set; }

    ...
}

ClassName cn = new ClassName();

cn.Val = "Hi StackOverflow!!";

这段代码在Python中等价的写法是什么呢?

相关问题:

3 个回答

0
class a:
 pass    //you need not to declare val
x=a();
x.val="hi all";

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

3

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
7

你可以很简单地给任何Python对象添加成员,就像其他回答中提到的那样。如果你想要更复杂的获取和设置方法,就像在C#中那样,可以看看Python内置的property功能:

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")

撰写回答