변수 유형 선언 방법 Python C style
저는 프로그래밍 학생이고 선생님은 프로그래밍 패러다임을 가르치기 위해 C부터 시작하셨어요, 그는 제가 파이썬으로 숙제를 전달해도 괜찮다고 말했습니다(숙제가 더 쉽고 빠릅니다).그리고, 가능한 한 C플레인에서 코드에 가깝게 하고 싶습니다.
★★★★
의 python과 python 타입을 해야 하나요?ex C 서 、 C 서 、 Python 。 §:
int X,Y,Z;
파이썬으로 할 수 있다는 거 알아
x = 0
y = 0
z = 0
그러나 그것은 많은 작업이 필요한 것으로 보이며 Python이 C보다 더 쉽고 더 빠르다는 요점을 놓치고 있다.그렇다면, 이것을 하는 가장 빠른 방법은 무엇일까요?
P.S. 대부분의 경우 데이터 유형을 python으로 선언할 필요가 없다는 것을 알지만, 그래도 저는 제 코드가 동급생처럼 보이도록 하고 싶습니다.
Python 3.6부터는 다음과 같이 변수와 함수의 유형을 선언할 수 있습니다.
explicit_number: type
또는 함수의 경우
def function(explicit_number: type) -> type:
pass
이 투고로부터의 예는 다음과 같습니다.Python 3.6에서 정적 유형 검사를 사용하는 방법은 보다 명확합니다.
from typing import Dict
def get_first_name(full_name: str) -> str:
return full_name.split(" ")[0]
fallback_name: Dict[str, str] = {
"first_name": "UserFirstName",
"last_name": "UserLastName"
}
raw_name: str = input("Please enter your name: ")
first_name: str = get_first_name(raw_name)
# If the user didn't type anything in, use the fallback name
if not first_name:
first_name = get_first_name(fallback_name)
print(f"Hi, {first_name}!")
모듈에 대해서는 문서를 참조해 주세요.
간단히 말하면:python으로 입력하는 것은 힌트에만 도움이 됩니다.
x: int = 0
y: int = 0
z: int = 0
편집: Python 3.5는 변수의 유형을 지정하는 방법을 도입한 유형 힌트를 도입했습니다.이 답변은 이 기능을 사용하기 전에 작성되었습니다.
Python에서는 변수를 선언할 방법이 없습니다.C의 의미에서는 "declaration"도 "variable"도 존재하지 않기 때문입니다.이렇게 하면 다음 세 가지 이름이 동일한 개체에 바인딩됩니다.
x = y = z = 0
Python이 C보다 쉽거나 빠르다고는 할 수 없지만 심플할 수도 있습니다.
"데이터 유형을 선언할 필요가 없습니다."라는 다른 진술을 명확히 하기 위해 데이터 유형을 선언할 수 없음을 다시 기술해야 합니다.변수에 값을 할당하면 값의 유형이 변수의 유형이 됩니다.그것은 미묘한 차이이지만 그럼에도 불구하고 다르다.
아무도 당신이 실제로 이것을 할 수 있다는 것을 지적하지 않은 것에 놀랐습니다.
decimalTwenty = float(20)
대부분의 경우 변수를 입력하는 것은 의미가 없습니다.변수는 언제든지 다시 입력할 수 있기 때문입니다.그러나 위의 예에서는 도움이 될 수 있습니다.에도 '하다, 하다, 하다, 하다'와.int()
,long()
,float()
★★★★★★★★★★★★★★★★★」complex()
그러나 강력한 유형과 가변 정의는 실제로 개발을 용이하게 하기 위해 존재합니다.이러한 사항을 사전에 충분히 검토하지 않았다면 코드를 설계하고 개발하는 것이 아니라 단순히 해킹하는 것입니다.
느슨한 유형은 단순히 복잡함을 "설계/핵"에서 실행 시간으로 전환합니다.
Python의 모든 것은 객체이며 클래스, 클래스 인스턴스, 함수의 코드, 모듈이라고 불리는 함수의 라이브러리, 정수, 부동 소수점 숫자, 문자열 또는 목록과 사전과 같은 컨테이너 등의 데이터 값을 포함합니다.또한 식별자 이름(문자열 개체)과 현재 존재하는 개체 간의 연결을 추적하는 데 사용되는 사전과 같은(또는 매핑) 컨테이너인 네임스페이스도 포함됩니다.두 개 이상의 식별자가 동일한 개체와 연관되어 있는 경우 개체는 여러 개의 이름을 가질 수도 있습니다.
식별자를 객체와 연관짓는 것을 "객체에 이름 바인딩"이라고 합니다.Python에 있는 변수 선언에 가장 가까운 것입니다.이름은 서로 다른 시간에 서로 다른 개체와 연관지을 수 있기 때문에 첨부할 데이터의 유형을 선언하는 것은 의미가 없습니다.그냥 하면 됩니다.오브젝트 값의 이름과 정의를 모두 지정하는 코드 한 줄 또는 블록으로 작성되는 경우가 많습니다.<variable> = 0
또는 a로 시작하는 함수def <funcname>
.
이게 얼마나 도움이 되는지.
python 2와 3에서 고유한 값을 찾기 위해 데이터 유형을 사용합니다.그렇지 않으면 str 또는 int 타입처럼 동작시킬 수 없습니다.단, 특정 유형을 제외한 모든 유형의 값을 체크해야 하는 경우 매우 유용하고 코드 판독이 용이해집니다.
상속 개체는 python으로 형식을 만듭니다.
class unset(object):
pass
>>> print type(unset)
<type 'type'>
사용 예: 조건 또는 함수 핸들러를 사용하여 값을 조건부로 필터링하거나 인쇄할 수 있으므로 유형을 기본값으로 사용하면 유용합니다.
from __future__ import print_function # make python2/3 compatible
class unset(object):
pass
def some_func(a,b, show_if=unset):
result = a + b
## just return it
if show_if is unset:
return result
## handle show_if to conditionally output something
if hasattr(show_if,'__call__'):
if show_if(result):
print( "show_if %s = %s" % ( show_if.__name__ , result ))
elif show_if:
print(show_if, " condition met ", result)
return result
print("Are > 5)")
for i in range(10):
result = some_func(i,2, show_if= i>5 )
def is_even(val):
return not val % 2
print("Are even")
for i in range(10):
result = some_func(i,2, show_if= is_even )
산출량
Are > 5)
True condition met 8
True condition met 9
True condition met 10
True condition met 11
Are even
show_if is_even = 2
show_if is_even = 4
show_if is_even = 6
show_if is_even = 8
show_if is_even = 10
한다면show_if=unset
보다 안전하고 읽기 쉽기 때문에, 이 용도에 최적인 것입니다.나는 그것들을 비단뱀과는 별개인 에넘에도 사용했다.
언급URL : https://stackoverflow.com/questions/3933197/how-to-declare-variable-type-c-style-in-python
'programing' 카테고리의 다른 글
vuejs 2의 메서드 내에서 뒤로 버튼을 처리할 수 있습니까? (0) | 2022.08.09 |
---|---|
Vuex 스토리지의 데이터가 vue 구성 요소에 표시되지 않음 (0) | 2022.08.09 |
스프링 MVC - 스프링 컨트롤러에서 맵의 모든 요청 매개 변수를 가져오려면 어떻게 해야 합니까? (0) | 2022.08.08 |
VueJ에서 [_ob__: Observer] 요소에 액세스하는 방법 (0) | 2022.08.08 |
코드스타일; 주석 앞 또는 뒤에 javadoc을 넣습니까? (0) | 2022.08.08 |