>  기사  >  백엔드 개발  >  Python - 명명 규칙

Python - 명명 규칙

高洛峰
高洛峰원래의
2016-10-19 17:08:271545검색

1. 패키지 이름, 모듈 이름, 로컬 변수 이름, 함수 이름

모두 소문자 + 밑줄 카멜 표기

예: this_is_var

2. >

모두 대문자 + 밑줄 카멜 케이스

예: GLOBAL_VAR

3, 클래스 이름

첫 글자를 대문자로 한 카멜 케이스

예: ClassName( )

넷째, 밑줄에 대해

은 단일 밑줄로 시작하는데 이는 약한 내부 사용 식별자입니다. from M import *, 객체는 가져오지 않습니다(Python의 모든 것은 물체).

이중 밑줄로 시작하는 변수 이름은 주로 내부적으로 클래스를 비공개로 식별하는 데 사용되며 직접 액세스할 수 없습니다. 모듈에 사용하려면 이전 항목을 참조하세요.

이중 밑줄로 시작하고 이중 밑줄로 끝나는 명명 방법을 사용하지 마십시오.

1의 식별자 예: 변수 var_1, _var_2, __var_3은

module_1 모듈

#module_1

var_1

_var_2

__var_3

module_2 모듈의 코드

#module_2_error
 '''
 以下划线开头的变量不会别导入
 '''
  from module_1 import *
    
  print var_1
  print _var_2  #将报错
  print __var_3  #将报错


6행과 7행을 실행하면 오류가 보고됩니다. 밑줄로 시작하는 항목은 가져오지 않습니다.

약한 내부 사용 식별자이므로 사용할 수 있는 방법이 남아 있으므로 별도로 가져오기만 하면 됩니다.

#module_2_solution
   
 from module_1 import *  # 导入所有的不是下划线开头的对象
   
 from module_1 import _var_2, __var_3 # 显式导入下划线开头的对象
   
 print var_1
 print _var_2 # 不会报错
 print __var_3  # 不会报错


2의 예:

#module_error
 '''
 双下划线开头的变量不能被直接访问
 '''
   
 class MyClass():
     def __init__(self):
         self.var_1 = 1
         self._var_2 = 2
         self.__var_3 = 3
       
 if __name__=="__main__":
     obj = MyClass()
     print obj.var_1
     print obj._var_2
     print obj.__var_3  # 这里将会出错


다음을 수행하려면 함수를 정의해야 합니다. 이중 밑줄로 시작하는 문자를 가져옵니다. 변수

#module_solution
  
'''
需要定义函数来获取双下划线开头的变量
'''
  
class MyClass():
    def __init__(self):
        self.var_1 = 1
        self._var_2 = 2
        self.__var_3 = 3
          
    def get_var_3(self):
        return self.__var_3
          
      
  
if __name__=="__main__":
    obj = MyClass()
    print obj.var_1
    print obj._var_2
    print obj.get_var_3()  # 不会再报错


넷째, 기타 참고 사항

c와 같은 언어의 것과 같아서는 안 됩니다. Python은 해석할 때만 유형을 결정하기 때문에 변수 유형(예: iValue)을 식별하려면 첫 번째 문자를 사용하십시오.

Exception도 클래스이므로 클래스의 명명 규칙을 따릅니다. 또한 예외가 실제로 오류를 참조하는 경우 접미사에 "Error"를 붙여야 합니다.

이름을 지정할 때는 완전한 철자를 사용하도록 노력해야 합니다. 약어에는 두 가지가 있습니다. XML, ID 등 일반적으로 사용되는 약어이며, XmlParser와 같이 이름을 지정할 때는 첫 글자만 대문자로 사용해야 합니다. 이름에 긴 단어가 포함되어 있고 특정 단어가 축약되어 있습니다. 이 경우 관례적인 약어를 사용해야 한다. 예를 들어, function은 fn으로 축약되고, text는 txt로 축약되고, object는 obj로 축약되고, count는 cnt로 축약되고, number는 num으로 축약됩니다.

클래스 인스턴스 메소드의 첫 번째 매개변수는 self를 사용하고 클래스 메소드의 첫 번째 매개변수는 cls를 사용합니다


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.