자바 아저씨가 파이톤을 사용하기 전의 전체 기록 (5)

7972 단어 Python

Java 아저씨가 벽장을 이해하게 된 계기.


안녕하세요, Java 삼촌입니다.
모집 중 칭찬이 자자합니다(정기)
크랑의 말이 저번평어에 나왔기 때문에[자바스크립트] 원숭이도 아는 파행 초입문.처럼 소박하게 보았지만 알기 쉬운 페이지였어요.
그리고 벽장을 처음 접했을 때 Java 아저씨가 팩토리 메트로드의 대상으로 삼은 걸 보면 처음 이해하게 된 계기였겠죠
'함수를 되돌리는 함수' 라는 표현 방식은 단지 '인터페이스를 되돌리는 방법' 에서 조금 보았을 뿐이다.
Java로 Factory Method 말하기.
  • FactoryMethod에서 인터페이스로 하는 실체를 실례화하고 포함 클래스
  • 로 되돌려줍니다
    이런 물건이지만'한 함수만 가진 인터페이스와 그 실현된 것을 돌려주는 것'으로 벽장을 보니 조금 이해가 가는 것 같다.
    물론 각양각색의 차이가 있다.
  • 원래 복제체는'반환함수의 함수'자체를 대상으로 처리하고'반환함수'가 자체에 포함되어 있기 때문에 반환인터페이스인FactoryMethod로 볼 때 그들의 위치가 완전히 다르다
  • 클론 내 변수가 자바에서 말하는 static 변수가 되는 성질 등을 팩토리메트로 설명할 수 없음
  • 그러나 처음부터 이런 견해가 있었기 때문에'이해'도 사실이다.
    물론 설명을 겸허하게 읽고 쓴 내용을 솔직하게 받아들이면 아무 문제가 없지만, 사람의 경험도 사람의 생물을 방해할 수 있기 때문에 경험에 따라 비슷한 개념에서 새로운 개념을 이해하려고 노력하는 것도 필요하다고 생각한다.물론 궤도 수정이 필요하고 효율이 낮다는 것도 부인할 수 없다.
    그래, 물론 바보 같은 말은 내가 완전히 안다.
    그러나 의외로 오래전부터 자바를 사용해 온 사람들 중에서도 이 분야의 개념을 모르는 사람이 있다.아니, 난 그저 그래 w

    구조형


    텍스트의 5장'구조형, 가변성 및 고급 함수'를 읽고 있습니다.
    이 장에서 사용하는 구조 유형은 다음과 같은 네 가지가 있다.
  • 원조
  • list
  • range
  • dict
  • 맵이 아직 앞에 있는 것 같아요.

    원조


    문자열과 마찬가지로 순서대로 변하지 않는 요소를 배열한다.
    문자열과 달리'요소는 문자를 쓰지 않아도 된다'.
    모든 요소가 같은 유형일 필요는 없다.
    초기화할 때 괄호 () 로 이렇게 쓰십시오.t1 = (1, 'abc', 3.14)원조에서 반드시 주의해야 할 것은 단지 하나의 요소만 있는 상황에서의 기술법이다.
    OK: t1 = (1,)NG: t2 = (1)이해하셨습니까?단 하나의 요소라도 쉼표를 붙이지 않으면 틀릴 수 있다.
    귀찮다
    문자열과 마찬가지로 곱셈으로 원조의 복제품을 여러 번 연결할 수도 있고, 추가 글자와 슬라이드를 사용할 수도 있다.
    또 "원조를 원조의 요소로 원조에 넣는다"며 원조를 자바의 리스트로 고려하면 이해가 갈 수 있다.그것도 열네릭스야, 한정된 형식이 아니면 뭐든지 가입할 수 있어.
    그러면 이 텍스트는 상당히 다양한 일이 사전에 언급되지 않은 상황에서 발생하지만, 파이톤의 함수로 원조와 문자열 등의'순서형'으로 반환값을 되돌려준다. 다중 대입을 할 수 있기 때문에 여기서 갑자기 반환값을 받아들이는 변수가 여러 개 배열된다.
    생각해봐도 당연한 거죠?당연한 일이지만 충격적이야 w
    지금까지는 반환값이 한 언어만 답장할 수 있었기 때문이다.
    너무 충격적이어서 샘플 코드를 써봤어요.
    5-1.py
    def findExtremeDivisors(n1, n2):
        """正の整数n1とn2の最小公約数 > 1と最大公約数から成るタプルを返す
        公約数がない場合(None, None)を返す。"""
        minVal, maxVal = None, None
        for i in range(2, min(n1, n2)+1):
            if n1%i == 0 and n2%i == 0:
                if minVal == None:
                    minVal = i
                maxVal = i
        return (minVal, maxVal)
    
    minDivisor, maxDivisor = findExtremeDivisors(16, 32)
    print('1より上の最小公約数', minDivisor,'最大公約数', maxDivisor)
    
    divisors = findExtremeDivisors(9, 15)
    print('1より上の最小公約数', divisors[0],'最大公約数', divisors[1])
    
    실행 결과는 다음과 같습니다.
    1より上の最小公約数 2 最大公約数 16
    1より上の最小公約数 3 最大公約数 3
    
    그래.이렇게 되면 원보로 직접 대답하지 않고 의미 있는 이름으로 받아들이면 가독성이 높아지겠죠.뭐, 하지만 이것도 사례지.
    추기: 반환값의 변수수가 원조수와 일치하지 않을 경우 어떻게 될까요?그래서 코드를 조금 썼어요.
    5-2.py
    def getThreeValue():
        return (1, 'text', 3.14)
    
    #戻り値を受ける変数がタプルのデータ総数より少ない場合
    first, second = getThreeValue()
    print('最初の要素', first, '2番目の要素', second)
    
    #戻り値を受ける変数がタプルのデータ総数より多い場合
    first, second, third, fourth = getThreeValue()
    print('最初の要素', first, '2番目の要素', second)
    print('3番目の要素', third, '4番目の要素', fourth)
    
    Visual Studio Code에서 이것을 쓰면 실행하기 전에pylint에서 오류를 알려 줍니다.

    그렇구나, 너무 많고 너무 적으면 안 되는구나.
    몇 개의 원조가 들어갈지 모르는 상황에서 솔직하게 원조로 받아들이지 않으면 안 된다.
    (추기 종료)
    그나저나'순서형'이라는 단어도 처음 등장하는데 원조와 문자열 외에 또 무엇이 있을까.아마 리스트도 그럴 거예요.이따가 다시 불평합시다.
    그럼 4장에 논이 없으면 나와...?아, 넘어갈게요.
    실행할 문장을 찾거나 찾을 때까지 함수 본문의 코드를 실행합니다.
    ...
    다른 한편, 후자의 경우 함수는 None의 값을 되돌려준다.(반환 후 표현식이 없으면 반환 값은 None)
    아, 그렇군요.즉 반환 값이 명확하게 지정되지 않았을 때만 사용하는 값이다.
    근데 왜 이런 값이 필요하지?함수는 반드시 일치성으로 어떤 값을 되돌려야 하는 상황이 있다...?
    그럼, 이 보도는 잠시 여기서 마치겠습니다.

    좋은 웹페이지 즐겨찾기