หาก 'ชัดเจนดีกว่านัย' เหตุใดจึงไม่มีการปรับเปลี่ยนการเข้าถึงอย่างชัดเจนใน Python: สาธารณะการป้องกันส่วนตัว ฯลฯ
ฉันรู้ว่าความคิดนี้คือโปรแกรมเมอร์ควรรู้ว่าต้องทำอะไรผ่านคำใบ้ - ไม่จำเป็นต้องใช้ 'กำลังดุร้าย' แต่ IMO 'Encapsulation' หรือ 'การซ่อนข้อมูล' ไม่เพียง แต่จะช่วยให้ผู้คนออกไปมันเป็นคำถามขององค์กรและโครงสร้าง: เลเยอร์การพัฒนาของคุณควรมีการกำหนดขอบเขตและเส้นขอบที่กำหนดขอบเขตได้เองอย่างชัดเจนเหมือนกับระบบทางกายภาพ
ใครบางคนโปรดช่วยฉันออกมาที่นี่พร้อมคำอธิบายที่ชัดเจนว่าทำไมข้อ จำกัด การเข้าถึงจึงบอกเป็นนัยมากกว่าชัดเจนใน Python ภาษาที่ดูเหมือนใกล้จะสมบูรณ์แบบ
แก้ไข: จนถึงตอนนี้ฉันเห็นคำตอบที่เสนอมา 3 ข้อแล้วและฉันก็รู้ว่าคำถามของฉันมี 2 ส่วน:
ทำไมไม่มีคำสำคัญเช่น
private def myFunc(): dostuff....
แทน IMO ผู้น่าเกลียดและยากที่จะพิมพ์ขีดล่าง แต่นั่นไม่ใช่ประเด็นสำคัญ
ที่สำคัญกว่า:
เหตุใดตัวดัดแปลงการเข้าถึงเหล่านี้จึงเป็นเพียง 'คำแนะนำ' หรือคำแนะนำเท่านั้นและไม่บังคับใช้ มันจะยากที่จะเปลี่ยนในภายหลัง มันง่ายมากที่จะเปลี่ยน 'ป้องกัน' เป็น 'สาธารณะ' - และถ้าคุณมีเครือข่ายการถ่ายทอดที่ซับซ้อนที่ทำให้มันยากคุณมีการออกแบบที่ไม่ดี - การออกแบบของคุณควรได้รับการขัดเกลาแทนที่จะอาศัยคุณสมบัติภาษาที่ทำให้เขียนได้ง่าย รหัสที่มีโครงสร้างไม่ดี
เมื่อมีการบังคับใช้ตัวดัดแปลงการเข้าถึงรหัสของคุณจะถูกแบ่งโดยอัตโนมัติ - คุณรู้ว่าบางกลุ่มอยู่นอกขอบเขตดังนั้นคุณจึงไม่ต้องจัดการกับพวกเขายกเว้นถ้าจำเป็นและเมื่อจำเป็น และหากการออกแบบของคุณไม่ดีและคุณพบว่าตัวเองเคลื่อนไหวสิ่งต่าง ๆ เข้าและออกจากขอบเขตที่แตกต่างกันอย่างต่อเนื่องภาษาสามารถช่วยคุณทำความสะอาดการกระทำของคุณ
เท่าที่ฉันรัก Python ฉันพบว่าจุดที่สองนี้เป็นข้อบกพร่องที่ร้ายแรง และฉันยังไม่เห็นคำตอบที่ดีสำหรับสิ่งนี้
private def whatever
คือclass x: def whatever(self): pass
มันเป็นทางลัดclass x: pass; x.whatever = lambda self: pass
ดังนั้นโดยพื้นฐานแล้วคุณจะต้องมี