Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图将java代码转换成python代码_Java_Python - Fatal编程技术网

我试图将java代码转换成python代码

我试图将java代码转换成python代码,java,python,Java,Python,我正在将Java程序转换为python。在这里,我被困在一个地方,即getter和setter函数。 java代码如下,我必须将其转换为python代码 public String getABC() { return ABC; } public void setABC(String ABC) { this.ABC = ABC; } Python还有一个属性getter/setter机制: class-SomeClass: 定义初始化(自): self.\u abc=无 @财产

我正在将Java程序转换为python。在这里,我被困在一个地方,即getter和setter函数。 java代码如下,我必须将其转换为python代码

public String getABC() {
    return ABC; 
}
public void setABC(String ABC) {
    this.ABC = ABC;
}

Python还有一个属性getter/setter机制:

class-SomeClass:
定义初始化(自):
self.\u abc=无
@财产
def abc(自我):
返回自我
@塞特
def abc(自我、价值):
self.\u abc=值
obj=SomeClass()
obj.abc=‘测试’
打印(对象abc)#“测试”
但值得注意的是,只有当您需要控制对受保护属性的访问或在获取或设置值时执行其他操作时,这种方法才有意义。否则,在构造函数中初始化属性并直接使用它会更简单:

class-SomeClass:
定义初始化(自):
self.abc=无
obj=SomeClass()
obj.abc=‘测试’
打印(对象abc)#“测试”

本教程将帮助您:。

您做过任何研究吗?如果你已经被困在二传和三传中,我建议你马上停下来。哇,这是一个令人鼓舞的声明。非常感谢。幸运的是,谷歌搜索是编码的重要组成部分。我只是指出你根本没有研究任何东西,否则你会发现很多类似的结果。不要在PythonDoes中使用getter和setter这个答案?您真的不应该使用这样的属性,关键是要避免编写无意义的getter和gettersetters@juanpa.arrivillaga什么的全部意义?从这个角度来看,您不需要定义自定义类:只需使用SimpleNamespace和monkey补丁即可。我个人不太喜欢它。属性getter和setter的存在是有原因的,有些人可能会发现这很方便,特别是那些自然习惯了它的人(比如Java后台)。不,编写一个只获取、设置和属性的属性是完全没有意义的。它不方便,它是方便的反面,它的代码没有任何用处。整个要点是允许您在不编写样板getter和setter的情况下进行封装。这就是它存在的原因。稍后,如果您决定控制访问,则可以添加属性(或其他描述符),而无需中断依赖于
self.foo
self.foo=val
的其余代码。。。这就是我们不只是在python中编写
def get_foo(self)
def set_foo(self,value)
的原因。因此,按照惯例,您上面的类在
\uu init\uuu
中只有
self.abc=None
,没有getter和setter。@juanpa.arrivillaga是的,但这正是python中封装的例子,不是吗?在Java中,您还可以拥有公共属性并直接访问它们,而无需getter和setter。这里也是一样,所以我看到提供的用例完全合法,它清楚地反映了OP所期望的功能。