And yes, everything referenced gets changed when it's passed by reference, unless you pass it by value... cuz it follows the imperative programming paradigm.
def my_function(car):
car.name = 'Hyundai' # changes the original object name
c = Car(name='Kia')
my_function(c)
print(c.name) # prints > Hyundai
Functional programming:
A safer approach than OOP that is a bit related to math (its origins is from the lambda in calculus).
They key here is "immutability", where every function should create a new object, and not change (mutate) the passed object... aka "declarative".
const numList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const result = numList
.filter(n => n % 2 === 0) // here a new object gets created
.map(a => a * 10) // and another one here
.reduce((a, b) => a + b) // and another
That being said, here we have created 4 different objects.
Is any paradigm better than the other?
No, just use the right paradigm in the right context, it is very common to write OOP in Python and to write functional in JavaScript.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
OOP:
A fancy way of programming to represent real aspects of an entity in programming, say a "car":
src: lynda youtube.com/watch?v=NUl8lcbeN2Y
And yes, everything referenced gets changed when it's passed by reference, unless you pass it by value... cuz it follows the imperative programming paradigm.
Functional programming:
A safer approach than OOP that is a bit related to math (its origins is from the lambda in calculus).
They key here is "immutability", where every function should create a new object, and not change (mutate) the passed object... aka "declarative".
That being said, here we have created 4 different objects.
Is any paradigm better than the other?
No, just use the right paradigm in the right context, it is very common to write OOP in Python and to write functional in JavaScript.