ฉันมีคลาสที่มีตัวแปรอินสแตนซ์ str จากตัวแปรอินสแตนซ์นี้ ฉันคำนวณตัวแปรอินสแตนซ์ตัวที่สอง ซึ่งโดยพื้นฐานแล้วเป็นเพียงสตริงที่แบ่งออกเป็น 'อะตอม' บางตัว ตัวแปรอินสแตนซ์ที่สองถูกกำหนดโดยสมบูรณ์โดยตัวแรก ฉันสร้างมันเป็นตัวแปรอินสแตนซ์เพราะฉันคิดว่ามันถือเป็น 'คุณสมบัติ' ของคลาสได้ดีที่สุด ฉันไม่แน่ใจเล็กน้อยเกี่ยวกับวิธีการปฏิบัติต่อตัวแปรอินสแตนซ์ที่ได้รับ โดยเฉพาะอย่างยิ่ง:
1) ฉันคิดว่าควรเป็นคุณสมบัติที่ได้รับเท่านั้น อย่างไรก็ตาม เนื่องจากการคำนวณตัวแปรอินสแตนซ์ที่ได้รับนั้นค่อนข้างเข้มข้น ฉันจึงต้องการให้ดำเนินการเมื่อคลาสเริ่มต้น ไม่ใช่เมื่อมีการเรียกใช้ตัวแปร 2) ถ้าฉันสร้างฟังก์ชันเพื่อคำนวณตัวแปรอินสแตนซ์เพียงอย่างเดียว มีวิธีทำเครื่องหมายสิ่งนี้หรือไม่ 3) นอกจากนี้ ฉันควรส่งตัวแปรอินสแตนซ์แรกเป็นพารามิเตอร์หรือเพียงแค่อ่านในวิธีการจากตนเอง (โดยทั่วไปฉันยังไม่แน่ใจเล็กน้อยว่าเมื่อใดที่จะต้องส่งตัวแปรอินสแตนซ์เป็นพารามิเตอร์ไปยังวิธีการ) 4) มีวิธีที่ดีกว่าในการทำเช่นนี้ที่ฉันไม่ได้กล่าวถึงหรือไม่? ขอบคุณ
แก้ไข: นี่เป็นตัวอย่างง่ายๆของสิ่งที่ฉันหมายถึง:
class Amendment:
def __init__(self, string):
self.string = string
self.atoms = generate_atoms()
def generate_atoms():
return do_something_that_takes_long(self.string)
.string
และ.atoms
เป็นคุณสมบัติแบบรับอย่างเดียวใช่ไหม - person PM 2Ring   schedule 20.05.2018