Es brīnos, ko labāk darīt:
d = {'a': 1, 'b': 2}
'a' in d
True
vai:
d = {'a': 1, 'b': 2}
d.has_key('a')
True
in
noteikti ir pitoniskāks.
Patiesībā has_key()
tika izņemts Python 3.x.
in
uzvar ne tikai elegances ziņā (un tas nav novecojis;-), bet arī veiktspējas ziņā, piemēram:
$ python -mtimeit -s'd=dict.fromkeys(range(99))' '12 in d'
10000000 loops, best of 3: 0.0983 usec per loop
$ python -mtimeit -s'd=dict.fromkeys(range(99))' 'd.has_key(12)'
1000000 loops, best of 3: 0.21 usec per loop
Lai gan šāds novērojums ne vienmēr ir patiess, jūs ievērosiet, ka parasti Python valodā ātrāks risinājums ir elegantāks un pitoniskāks; tieši tāpēc -mtimeit
ir tik noderīgs - runa nav tikai par simts nanosekunžu ietaupījumu šur un tur!-)