hit counter

Timeline

My development logbook

Difference Between Handling 'Self' in Python and Swift

Take a look at this swift code (XCode6 Beta7)

    class C {
            func name () -> String {
                return "C"
            }
    }

    class D:C {
            override func name () -> String {
                return "D"
            }
    }

    let c = C()
    println(c.name()) // print 'C'

    let d = D()
    println(d.name()) // print 'D' as expected

    println(C.name(d)()) // print 'D'! 

In python, the last case is different:

    class C:
        def name(self):
            return 'C' 

    class D(C):
        def name(self):
            return 'D' 

    c = C() 
    print(c.name())  // print 'C' 

    d = D() 
    print(d.name())  // print 'D' 

    print(C.name(d)) // print 'C'