为什么看Python的代码,有时候会在数据结构的最后一项末尾加上逗号.直接来看,这个逗号很多余. 根据PEP81的解释: Trailing commas are usually optional, except they are mandatory when making a tuple of one element 这里说末尾逗号不是必填的,除非你写了一个只有一个元素的元祖. 所以这么多人写的代码风格都是多余的? 不是的.PEP8在上面一句的后来接着写道,末尾的代码可以帮助减少bug: 比如多
查找所有已经分配部门的员工的last_name和first_name以及dept_noCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `employees` (`emp_no` int(11) NO
) SET @center_JZHW = ( SELECT DISTINCT STUFF( ( SELECT ','''+ qudao+'''' FROM CreatedType WITH ( NOLOCK ) WHERE qtype = 'pc' ORDER BY qudao ,, '') AS jzhw FROM CreatedType t) ) select @center_JZHW
In [1]: a = (1) In [2]: a Out[2]: 1 In [3]: a = (1,) In [4]: a Out[4]: (1,) 这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1. 所以,只有1个元素的tuple定义时必须加一个逗号来消除歧义.
如果要定义一个空的tuple,可以写成(): >>> t = () >>> t () 但是,要定义一个只有1个元素的tuple,如果你这么定义: >>> t = (1) >>> t 1 定义的不是tuple,是 1 这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1. 所以,只有1个元素的tuple定义时必须加一个逗号,,来