บางจุดฐาน:
- การเรียกใช้เมธอด Python นั้น "แพง" เนื่องจากเป็นลักษณะที่ตีความได้ ในทางทฤษฎีถ้ารหัสของคุณก็พอง่ายที่จะหมดสภาพรหัสงูใหญ่มีผลกระทบเชิงลบที่นอกเหนือจากการอ่านและนำมาใช้ใหม่ ( ซึ่งเป็นกำไรที่ยิ่งใหญ่สำหรับนักพัฒนาไม่มากสำหรับผู้ใช้ )
- หลักการความรับผิดชอบเดี่ยว (SRP) ช่วยให้สามารถอ่านโค้ดง่ายต่อการทดสอบและบำรุงรักษา
- โครงการมีพื้นหลังแบบพิเศษที่เราต้องการให้สามารถอ่านโค้ดการทดสอบและประสิทธิภาพของเวลาได้
ตัวอย่างเช่นโค้ดเช่นนี้ซึ่งเรียกใช้หลายวิธี (x4) จะช้ากว่าวิธีต่อไปนี้ซึ่งเป็นวิธีเดียว
from operator import add
class Vector:
def __init__(self,list_of_3):
self.coordinates = list_of_3
def move(self,movement):
self.coordinates = list( map(add, self.coordinates, movement))
return self.coordinates
def revert(self):
self.coordinates = self.coordinates[::-1]
return self.coordinates
def get_coordinates(self):
return self.coordinates
## Operation with one vector
vec3 = Vector([1,2,3])
vec3.move([1,1,1])
vec3.revert()
vec3.get_coordinates()
เมื่อเปรียบเทียบกับสิ่งนี้:
from operator import add
def move_and_revert_and_return(vector,movement):
return list( map(add, vector, movement) )[::-1]
move_and_revert_and_return([1,2,3],[1,1,1])
ถ้าฉันจะทำขนานอะไรบางอย่างเช่นนั้นมันเป็นเป้าหมายที่ฉันเสียประสิทธิภาพ ใจนั่นเป็นเพียงตัวอย่าง; โปรเจ็กต์ของฉันมีมินิรูทีนหลายตัวพร้อมคณิตศาสตร์เช่นนั้น - แม้ว่าจะง่ายกว่ามากในการทำงานกับโปรไฟล์ของเราไม่ชอบเลย
เราจะยอมรับ SRP ได้อย่างไรและที่ไหนโดยไม่ลดทอนประสิทธิภาพใน Python เนื่องจากการใช้งานโดยธรรมชาติจะส่งผลโดยตรง
มีวิธีแก้ไขปัญหาเช่นตัวประมวลผลล่วงหน้าบางประเภทที่วางสิ่งต่าง ๆ ไว้ในสายการผลิตหรือไม่?
หรือ Python ยากจนในการจัดการการแยกรหัสทั้งหมด?