범위

Java를 공부한 학생들은 Java 클래스가 공개(public) 또는 비공개(private) 메서드와 속성을 정의할 수 있다는 것을 알고 있습니다. 이는 주로 일부 기능과 속성을 다른 사람이 사용할 수 있거나 다른 사람만 사용할 수 있기를 바랍니다. 사용. Python의 모듈에 대해 배우면 실제로 Java의 클래스와 유사합니다. 그러면 모듈에서 일부 함수와 변수는 다른 함수와 변수에 의해 사용되고 일부 함수와 변수는 모듈 내부에서만 사용된다는 것을 어떻게 알 수 있습니까?

Python에서는 _ 접두사를 통해 이를 수행합니다. 일반 함수 및 변수 이름은 공용이며 abc, ni12, PI 등과 같이 직접 참조할 수 있습니다. __xxx__와 같은 변수는 특수 변수이며 직접 참조할 수 있지만 위와 같이 특수 목적을 갖습니다. 특수 변수이며, __author__도 작성자를 나타내는 데 사용되는 특수 변수입니다. 자체 변수는 일반적으로 이러한 변수 이름을 사용하지 않습니다. _xxx 및 __xxx와 같은 함수 또는 변수는 비공개(비공개)이므로 _abc, __abc 등과 같이 직접 참조해서는 안 됩니다. 안 돼, 안 돼. 그러나 Python에서는 비공개 함수나 변수에 대한 액세스를 완전히 제한할 수 있는 방법이 없기 때문에 프로그래밍 습관에서 비공개 함수나 변수를 참조해서는 안 됩니다.

예:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
def _diamond_vip(lv):
    print('尊敬的钻石会员用户,您好')
    vip_name = 'DiamondVIP' + str(lv)
    return vip_name
def _gold_vip(lv):
    print('尊敬的黄金会员用户,您好')
    vip_name = 'GoldVIP' + str(lv)
    return vip_name
def vip_lv_name(lv):
    if lv == 1:
        print(_gold_vip(lv))
    elif lv == 2:
        print(_diamond_vip(lv))
vip_lv_name(2)

출력 결과:

尊敬的钻石会员用户,您好
DiamondVIP2

이 모듈에서는 vip_lv_name 메서드 함수를 노출하고 기타 내부 논리는 각각 _diamond_vip 및 _gold_vip 비공개 함수에 구현됩니다. caller 이 함수 메소드는 전혀 신경 쓸 필요가 없고 vip_lv_name의 메소드 함수 호출에만 관심이 있으므로 private을 사용하는 것은 코드 캡슐화 및 추상화에 매우 유용한 방법입니다

일반적으로 필요하지 않은 모든 함수는 외부에서 참조되는 함수만 private으로 정의하고, 참조가 필요한 외부 함수만 public으로 정의합니다.

지속적인 학습
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~