اصطلاح تسمية تسلسل بايثون
-
20-08-2019 - |
سؤال
نظرًا لعدم وجود كتابة صريحة في لغة بايثون، أريد أن أكون قادرًا على التمييز بين التسلسلات وغير التسلسلات باستخدام اصطلاح التسمية.لقد قمت بالبرمجة باستخدام لغة بايثون منذ فترة قصيرة، وما زلت لم أجد أي طريقة منطقية/عملية لتسمية التسلسلات.بالطبع مررت بالشهيرة بيب8, ، وأجريت بعض الأبحاث على جوجل، ويبدو أن التقليد المقبول هو إضافة الحرف "s" في نهاية اسم المتغير.
لنفترض أن لدينا سلسلة من "قيم الوزن"، وبالتالي يجب أن يكون اسم المتغير للتسلسل الأوزان.هذا جيد حتى الآن، ولكن ستكون هناك حالات تنتهي فيها بعض الكلمات بـ "s" وتكون الطريقة الأكثر منطقية لتسمية متغير ليس تسلسلًا.أو لنفترض أن لديك تسلسلات من الأوزان مخزنة في تسلسل.سوف يقوم اصطلاح التسمية "s" بتسمية المتغير الأوزان, ، وهو قبيح.أنا متأكد من أن هناك اصطلاح تسمية أفضل للتسلسلات.
ما هي اصطلاح التسمية للتسلسلات التي تنصح بها؟
المحلول
في عام، تجنب هذا النوع من السلوك. إشعار من PEP8
<اقتباس فقرة>ووالاتساق الحماقة هو العفريت عقول صغيرة
اقتباس فقرة> وهذا بالضبط ما استدعاء weightss
متغير سوف تفعل. في ذلك العام أن يكون المتغيرات الخاصة بك تصف ما هي عليه، وليس وفقا لبعض اصطلاح التسمية:
weights = [44, 66, 88]
weight_groups = [[44, 66, 88], ...]
وغيرها.
ومن نفس القسم من PEP8 :
<اقتباس فقرة>ولكن الأهم من ذلك: معرفة متى تكون غير متناسقة - في بعض الأحيان أسلوب دليل فقط لا ينطبق. عندما تكون في شك، استخدم حكمك. نظرة في أمثلة أخرى وتقرر ما يبدو أفضل. وعدم التردد في نسأل!
اقتباس فقرة>نصائح أخرى
سوف يقوم اصطلاح التسمية "s" بتسمية المتغير الأوزان، وهو أمر قبيح.أنا متأكد من أن هناك اصطلاح تسمية أفضل للتسلسلات.
أعتقد أن الاصطلاح الذي تصفه يُقصد به تفسيره على أنه "كلما كان لديك قائمة بشيء ما، وضح أنها قائمة من خلال جمعها".على سبيل المثال، إذا كانت لديك قائمة بمثيلات العشب، فيمكنك الاتصال بهذا grasses
, ، لا grasss
.لا أعتقد أنه من المفترض أن تؤخذ بالمعنى الحرفي للكلمة كما تأخذها أنت.
ينصحك PEP دائمًا باتباع النهج الخاص بك إذا كان ذلك أكثر قابلية للقراءة وإفادة.مثل ذكر علي, ، أحد المبادئ التوجيهية لـ PEP هو أنه لا ينبغي أن تقع فريسة للاتساق الحمقاء.
ومهما كنت القلب قليلا يرغب ....
والمزاح فقط، ولكن أنا لا تحصل على التعلق على ذلك. إذا كانت قبيحة، أن تفعل شيئا لجعلها أكثر قابلية للقراءة مثل seq_weight
وseq_weights
لماذا لا مجرد thing_list
أو thing_seq
؟