Hi Richard. I wish it was that simple, but it's not. Here is an example of how using a builtin name breaks:
``` In [3]: unique = object() ...: class TestId: ...: id = 'something else' ...: unique_id = id(unique) ...: ...: --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-e682f00753bc> in <module> 1 unique = object() ----> 2 class TestId: 3 id = 'something else' 4 unique_id = id(unique) 5 <ipython-input-3-e682f00753bc> in TestId() 2 class TestId: 3 id = 'something else' ----> 4 unique_id = id(unique) 5 6 TypeError: 'str' object is not callable ``` On Saturday, August 22, 2020 at 8:09:19 AM UTC-7 Richard Damon wrote: > On 8/22/20 10:46 AM, Vitaly Kruglikov wrote: > > I suspect this has something to do with the combination of the > > explicit definition of the `id_` column and reflection, but don't know > > how to fix. I really need to keep the explicit `id_` descriptor and > > shouldn't rename it to `id` because that's a reserved python word. > > > I would note that 'id' is NOT a reserved word (aka key-word) in Python, > but the name of a built-in. As such id(xx) [which uses the built in] and > obj.id [which can reference the id member of that object] are not > incompatible. Don't use it as a variable name, as that would cause > issues, but in an explicit scope like a class it works. > > -- > Richard Damon > > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/9fb87feb-203f-43a5-a449-77fe815262b3n%40googlegroups.com.