大佬教程收集整理的这篇文章主要介绍了如何将示例 Python 类编写为 Java 简单 bean?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习 Python 并用这种语言编写课程似乎更复杂。我不明白一切。 Java 代码比 Python 魔术方法更长但更清晰。如何在 Python 中编写与以下 Java 中最相似的代码类:
public class Person {
private String name;
private String surname;
private int age;
public Person(String name,String surname,int agE) {
this.name = name;
this.surname = surname;
this.age = age;
}
public String getname() { return name; }
public voID setname(String Name) { this.name = name; }
public String getSurname() { return surname; }
public voID setSurname(String surName) { this.surname = surname; }
public int getAge() { return age; }
public voID setAge(int agE) {
this.age = age;
}
@java.lang.overrIDe
public java.lang.String toString() {
return "Person{" +
"name='" + name + '\'' +
",surname='" + surname + '\'' +
",age=" + age +
'}';
}
}
我知道 Python 没有完全封装,因此不可能创建私有字段,例如,但我正在寻找最佳的类模式这种语言 :) 如何用这种语言编写最有效的类?
私有方法在 Python 中是约定俗成的。您可以使用 _variabe
来指示应将某些内容视为私有内容。使用双下划线(例如 __variable
)会破坏名称。该变量仍然可以访问,但它更难并且由 Python 解释器强制执行。
通常情况下,您不需要 Python 中的 getter 和 setter。您可以将类编写为:
class Person:
def __init__(self,name,surname,agE):
self.name = name
self.surname = surname
self.age = age
def __str__(self):
return f'Person{{name={self.namE},surname={self.surnamE},age={self.agE}}}'
john = Person('John','Smith',44)
print(john)
Person{name=John,surname=Smith,age=44}
print(john.agE)
44
如果您以后需要添加设置属性的功能,您可以通过添加 @property
注释,然后添加 getter/setter,将旧的公共变量更改为由属性修改的私有变量来实现:
class Person:
def __init__(self,agE):
self.name = name
self.surname = surname
self.age = age
@property
def name(self):
return self._name
@name.setter
def name(self,value):
self._name = value[0].upper() + value[1:]
def __str__(self):
return f'Person{{name={self.namE},age={self.agE}}}'
j = Person('john','smith',14)
print(j)
Person{name=John,surname=smith,age=14}
print(j.Name)
John
这允许属性从一个字段更改为由函数处理的内容,而无需更改任何访问它的代码。
以上是大佬教程为你收集整理的如何将示例 Python 类编写为 Java 简单 bean?全部内容,希望文章能够帮你解决如何将示例 Python 类编写为 Java 简单 bean?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。