在Python中创建名为'id'的属性是坏事吗?

45 投票
3 回答
7419 浏览
提问于 2025-04-16 02:52

我知道有一个叫做id的函数,所以我不会创建一个叫id的函数或变量,但那对象上的属性呢?

3 个回答

2

正如其他人所说,拥有一个id属性是完全可以的,尽管很多人认为这在数据库设计上不是个好习惯。不过那是另一个话题。

如果你对编程规范比较在意,可以看看pylint这个工具。它会分析你的代码,帮你找出错误和一些不符合规范的问题。

http://www.logilab.org/857

8

我经常这样做,特别是对于那些用来表示数据库表的类,因为里面通常会有一个叫做 id 的字段,这样命名基本上不会和其他名字冲突。不过要注意,有些代码高亮工具可能会把它标记成内置函数。

44

这没问题,而且很常见。比如,映射到数据库记录的对象通常会有一个“id”属性,这个属性对应数据库中的“id”列的值。

属性总是有自己的命名空间,所以你需要通过 self.idobj.id 来引用它们,这样就不会和内置函数发生冲突。

撰写回答