在python上编程时,我发现了棉花糖。我总是在原生 python 上创建类。这个库(或其他(是创建基于 POO 的程序的最佳方式吗?
import datetime as dt
class User(object):
def __init__(self, name, email):
self.name = name
self.email = email
self.created_at = dt.datetime.now()
def __repr__(self):
return '<User(name={self.name!r})>'.format(self=self)
from marshmallow import Schema, fields
class UserSchema(Schema):
name = fields.Str()
email = fields.Email()
created_at = fields.DateTime()
Marshmallow 在需要序列化/反序列化时很有用。这与OOP无关。
如果你喜欢属性的声明和类型化方式,你可能会对Python 3.7中引入的dataclasses功能感兴趣。
@dataclass
class InventoryItem:
'''Class for keeping track of an item in inventory.'''
name: str
unit_price: float
quantity_on_hand: int = 0
def total_cost(self) -> float:
return self.unit_price * self.quantity_on_hand