mam zagłębiając wewnątrz kodu dla WiringPi-Python dla Pythona i znalazłem kilka bloków tak:Jaka jest różnica w obu tych instrukcjach Pythona?
def wiringPiSetup():
return _wiringpi2.wiringPiSetup()
wiringPiSetup = _wiringpi2.wiringPiSetup
ta jest nieco zastanawiające dla mnie, bo myślę, że w ten sposób:
def wiringPiSetup():
return _wiringpi2.wiringPiSetup()
przyniósłby dokładnie taki sam wynik jak ten:
wiringPiSetup = _wiringpi2.wiringPiSetup
Wiem, że pierwszy deklaruje nową funkcję, a drugi jest odniesieniem t o oryginalną funkcję, ale w testach, które zrobiłem, stwierdzam, że są one całkowicie równoważne. Spójrz tutaj:
>>> def a():
... return 4
...
>>> def a1():
... return a()
...
>>> a2 = a
>>>
>>> a1()
4
>>> a2()
4
Dlaczego więc WiringPi-Python umieszcza oba, gdy jeden z nich będzie wystarczający?
BTW:
- Używam Python 2.7.3
- Jest to plik gdzie zobaczyłem, że: here
Eh? Dobre pytanie, mam * nie mam pojęcia * dlaczego to robią. –
Spróbuj usunąć jedną z opcji. Czy coś to psuje? – misha
Pierwszą rzeczą, którą zauważam jest "Ten plik jest automatycznie generowany przez [swig] (http://www.swig.org/)", co może wyjaśniać pozornie bezcelowe stwierdzenie. Nigdy nie używałem SWIG i nie mam pojęcia, dlaczego generowałby taki kod. –