On Thu, 28 Nov 2013 13:47:22 +1100, Ben Finney wrote:
>> Third example - long comments: >> >> """ NB - We can't use Psycopg2's parametised statements here, as >> that automatically wraps everything in single quotes. So >> s3://my_bucket/my_file.csv.gz would become >> s3://'my_bucket'/'my_file.csv.gz'. Hence, we use Python's normal >> string formating - this could potentially exposes us to SQL >> injection attacks via the config.yaml file. I'm not aware of any >> easy ways around this currently though - I'm open to suggestions >> though. >> See >> http://stackoverflow.com/questions/9354392/psycopg2-cursor-execute- with-sql-query-parameter-causes-syntax-error >> for further information. """ > > That's not syntactically a comment, and I don't think pretending > triple-quoted strings are comments is good practice. If nothing else, > you'll need a special case if you want to enclose something with > existing triple-quotes. The CPython core devs disagree with you. Using bare strings for comments is supported by Python, and the compiler strips them out at compile-time: steve@runes:~$ python3.3 Python 3.3.0rc3 (default, Sep 27 2012, 18:31:58) [GCC 4.4.5] on linux Type "help", "copyright", "credits" or "license" for more information. py> import dis py> dis.dis('x = 1; """Comment"""; y = 1') 1 0 LOAD_CONST 0 (1) 3 STORE_NAME 0 (x) 6 LOAD_CONST 0 (1) 9 STORE_NAME 1 (y) 12 LOAD_CONST 1 (None) 15 RETURN_VALUE py> I'm on the fence on this one. I can it's useful; but it's also inconsistent with docstrings. And I wonder why other "dead objects" aren't also dropped: py> dis.dis('x = 1; {23: "a", "b": 42}; y = 1') 1 0 LOAD_CONST 0 (1) 3 STORE_NAME 0 (x) 6 BUILD_MAP 2 9 LOAD_CONST 1 ('a') 12 LOAD_CONST 2 (23) 15 STORE_MAP 16 LOAD_CONST 3 (42) 19 LOAD_CONST 4 ('b') 22 STORE_MAP 23 POP_TOP 24 LOAD_CONST 0 (1) 27 STORE_NAME 1 (y) 30 LOAD_CONST 5 (None) 33 RETURN_VALUE -- Steven -- https://mail.python.org/mailman/listinfo/python-list