簡體   English   中英

Python:如何創建派生類的初始化程序

[英]Python: how to create initializer of a derived class

我有一個class order_order

class order_order(osv.osv):

    _inherit = "sale.order"

    _columns = {
        'order_completed_date' : fields.char('Order Completed Date'),
        .
        .
        .
    }

基於 SO帖子,我編寫了以下初始化程序:

def __init__(self, **kwargs):
    super(order_order, self).__init__(**kwargs)
    self.order_completed_date = order_completed_date
    .
    .
    .

我試圖創建一個對象為:

order_order.__new__(order_completed_date=order_completed_date, ...)

但是我收到以下錯誤:

TypeError: __new__() got an unexpected keyword argument 'order_completed_date'

編輯:得到相同的錯誤:

order_order(order_completed_date=order_completed_date, ...)

EDIT2:完全錯誤:

Traceback (most recent call last):
  File "/home/nish/repos/stage/openerp/web/addons/web/http.py", line 292, in dispatch
    r = method(self, **self.params)
  File "/home/nish/repos/stage/openerp/web/addons/web/controllers/spree_api.py", line 118, in some_html
    order_order(order_completed_date=order_completed_date, order_id=order_id, product_id=product_id, product_name=product_name, size=size, product_cost_cp=product_cost_cp, product_cost_sp=product_cost_sp, product_cost_mrp=product_cost_mrp, product_creation_date=product_creation_date, product_taxon=product_taxon, user_email=user_email, user_name=user_name, user_address=user_address, user_city=user_city, city_zip_code=city_zip_code, user_state=user_state, user_country=user_country)
TypeError: __new__() got an unexpected keyword argument 'user_address'

我究竟做錯了什么? 我該如何糾正錯誤?

__new__是類型的構造函數,您通常不想像以往那樣使用它。 創建對象的正常方法是,它還包括調用其初始化器:

order_order(order_completed_date=order_completed_date, ...)

因此,只需調用類型即可; 並且該調用的參數將傳遞給初始化程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM