ฉันมาจากโลก Java และการอ่านบรูซ Eckels' งูใหญ่ 3 รูปแบบสูตรและสำนวน
ในขณะที่อ่านเกี่ยวกับคลาสมันจะบอกว่าใน Python ไม่จำเป็นต้องประกาศตัวแปรอินสแตนซ์ คุณเพียงแค่ใช้พวกมันในตัวสร้างและบูมพวกมันอยู่ที่นั่น
ตัวอย่างเช่น:
class Simple:
def __init__(self, s):
print("inside the simple constructor")
self.s = s
def show(self):
print(self.s)
def showMsg(self, msg):
print(msg + ':', self.show())
หากเป็นจริงวัตถุของคลาสใด ๆ ก็Simple
สามารถเปลี่ยนค่าของตัวแปรs
นอกคลาสได้
ตัวอย่างเช่น:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
ใน Java เราได้รับการสอนเกี่ยวกับตัวแปรสาธารณะ / ส่วนตัว / ที่มีการป้องกัน คำหลักเหล่านั้นสมเหตุสมผลเพราะในบางครั้งคุณต้องการตัวแปรในคลาสที่ไม่มีใครอยู่นอกชั้นเรียนสามารถเข้าถึงได้
เหตุใดจึงไม่จำเป็นใน Python