我已經讀了一些關於自動化對象id的創建,但仍然迷路了......我試圖將以下代碼以Algorias here ......創建一個類來生成ID
我想要實現的是一個類,它是所有新的id請求的資源。其中的邏輯是,如果是在同一個地方,應該更容易管理...
但是當我到X設置爲訂單的一個實例,我得到如下:
>>> x = Order()
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
x = Order()
File "C:\Python27\delete.py", line 17, in __init__
self.uid = Id_Class.new_id("Order")
TypeError: unbound method new_id() must be called with Id_Class instance as first argument (got str instance instead)
任何幫助將不勝感激
import itertools
class Id_Class(object):
new_id = itertools.count(1000).next
order_id = itertools.count(1000).next
person_id= itertools.count(1000).next
def new_id(self, t): # t = type of id required
if t == "Order":
self.id = Id_Class.order_id()
elif t == "Person":
self.id = Id_Class.person_id()
class Order(object):
def __init__(self):
self.uid = Id_Class.new_id("Order")
self.cus='Test'
class Person(object):
pass
它仍然返回'None'(這顯然不是有意的),並且它只用1個參數調用,所以會引發異常,因爲它被調用的參數數量錯誤。 – mgilson 2012-07-12 21:38:07
如果您使用的是Eric的代碼,請不要將id分配給self,而是直接將其分配給Order的uid。 – Marconi 2012-07-12 21:40:29
@Marconi - 也擺脫'self'參數... – mgilson 2012-07-12 21:43:44