On 05/03/2019 22:39, Milt wrote:
The following code gives me unusual results - base on experience with C++.

class Car:
    # carColor = None
    # mileage = None

    def __init__(self, color = None, miles = None):
       self.mileage = miles
       self.carColor = color

    def print(self):
       print(f"Color:   {self.carColor}")
       print(f"Mileage: {self.mileage}")

myCar = Car('blue', 15000)
myCar.print()

print()

myCar = Car(25000, 'orange')
myCar.print()

The behaviour you should expect even from C++ (a language I have no respect for) is a compile-time error complaining that you are passing an integer to a string parameter and vice versa. Python is a dynamically typed language; it doesn't enforce any restrictions on what types of object can be bound to any given name. This is occasionally a surprise when you're being careless, but it really shouldn't break your expectations.

--
Rhodri James *-* Kynesim Ltd
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to