我已经读了一些关于自动化对象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