JavaBean equivalent in Python
我对使用Python作为OOP还比较陌生。我来自Java后台。如何用Python编写一个JavaBean等价物?基本上,我需要一门课:
任何输入?我在找一个示例代码!
你不知道,因为Python不是Java。最有可能的情况是,您应该编写一个不那么简单的类,构造一个namedDuple,传递一个字典,或者类似的东西。但要回答这个问题:
- python在类中有"private"变量吗?,
- python类中私有变量的实际实现);
构造函数"chain"的示例:
1 2 3 4 5 6 7 8 9 10 | >>> class A(object): ... def __init__(self): ... print("A") ... ... >>> class B(A): pass # has no explicit contructor ... >>> b = B() A >>> |
而且,正如@德尔南所写的——你可能想读:HTTP://DrtSimul.Org/No.44/12/python IS-NOT-JavaHTML-- Java和Python有着截然不同的文化,需要花费一些时间来钻研(和欣赏)两者。
另外,在编写了一些代码之后,将其与这里列出的常见习惯用法进行比较可能会有所帮助(我当然从中学到了很多东西):
- http://www.jeffknupp.com/blog/2012/10/04/writing-jametic-python/
- http://python.net/~goodger/projects/pycon/2007/惯用语/讲义.html
- http://python3porting.com/improving.html
Implements serializable.
选择您最喜欢的格式,并编写一个函数来为您序列化它。JSON,泡菜,山药,任何工作。决定吧!
Has getters and setters -> private properties
我们在这里不这样做,这些都是束缚语言的属性,我们都是这种语言的成年人。
dummy constructor
同样,我们并不担心,因为我们的构造器比其他语言更聪明一点。因此,您只需定义一个
正如米库所指出的:
对象可以由PICKE模块序列化,但没有实现接口,Python不是Java。
python中没有私有属性,通常人们使用bar(下划线)表示私有属性,但可以从外部世界访问它们。getter和setter都浪费CPU和程序员的时间。
没有什么可以添加到Miku的答案中。
关于属性:关于如何在Python中使用属性特性的真实世界示例?
好文本:http://dirtsimple.org/2004/12/python-is-not-java.html