I'm whizzing along in "Python Crash Course" and am in the chapter on classes. Just to satisfy my suspicion that "self" is just a placeholder for creating an object instance, I tried the following:
>>> class Dog(object): def __init__(this, name, age): this.name = name this.age = age def bark(this): print("Woof! Woof! Grrr!!!") def whoami(this): print("My name is", this.name.title(), "and I am", this.age, "years old.") >>> mydog = Dog('Spotty', 50) >>> mydog.bark() Woof! Woof! Grrr!!! >>> mydog.whoami() My name is Spotty and I am 50 years old. And just to be really silly: >>> class Cat(object): def __init__(MEOWWWW, name, age): MEOWWWW.name = name MEOWWWW.age = age def happy_cat(MEOWWWW): print("Zzzz ... purrrr ... zzzz") def whoami(MEOWWWW): print("My name is", MEOWWWW.name, "and I am", MEOWWWW.age, "years old. Now leave me be! I'm very sleepy!!!") >>> mycat = Cat('Callie', 7) >>> mycat.happy_cat() Zzzz ... purrrr ... zzzz >>> mycat.whoami() My name is Callie and I am 7 years old. Now leave me be! I'm very sleepy!!! So I really only have one question: Why not make Python's *traditional* name, "self", mandatory? Why give the programmer this kind of choice? [OK, that was two questions.] TIA! -- boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor