python
Python 데이터 클래스는 @dataclass
이 있는 일반 Python 클래스입니다. 장식가. 데이터를 보관하기 위해 특별히 만들어졌습니다. Python 버전 3.7부터 Python은 dataclass
이라는 내장 모듈을 통해 데이터 클래스를 제공합니다. . 이 기사에서 살펴볼 일반 Python 클래스에 비해 몇 가지 장점이 있습니다. 또한 예제 코드와 데이터 클래스로 수행할 수 있는 몇 가지 일반적인 작업을 살펴보겠습니다.
목차
<내비>일반 Python 클래스 대신 데이터 클래스를 사용해야 하는 이유는 무엇입니까? 먼저 Python 데이터 클래스가 제공하는 몇 가지 이점을 살펴보겠습니다.
@dataclass
데코레이터는 보이는 코드를 추가하지 않고도 클래스에 많은 기능을 추가합니다. 이를 통해 데이터 클래스를 매우 컴팩트하게 만들면서도 많은 유용한 기능을 제공할 수 있습니다. 데이터를 보관할 필드를 정의하기만 하면 됩니다. 함수를 정의할 필요가 없습니다.
두 개의 Python 데이터 클래스를 ==
과 비교할 수 있습니다. 소위 dunder 메서드 __eq__가 자동으로 구현되기 때문입니다. 일반적으로 이 특별한 방법을 구현하는 모든 Python 개체를 동일한 유형의 다른 개체와 비교할 수 있습니다.
마찬가지로 __repr__
구현되면 데이터 클래스를 인쇄하고 멋지게 표현할 수 있습니다. 이것은 디버깅에 특히 유용합니다.
데이터 클래스는 Python이 제공하는 새로운(ish) 유형 시스템을 중심으로 구축됩니다. 유형 힌트를 사용하면 코드에서 버그 및 예기치 않은 동작이 발생할 가능성이 줄어듭니다. 기본적으로 변수에 저장해야 하는 데이터 유형을 선언합니다.
다음은 직장 데이터 클래스의 예입니다.
from dataclasses import dataclass @dataclass class Card: rank: str suit: str card1 = Card("Q", "hearts") card2 = Card("Q", "hearts") print(card1 == card2) # True print(card1.rank) # 'Q' print(card1) Card(rank='Q', suit='hearts')
데이터 클래스는 기본값을 가질 수 있습니다. 기본값을 할당하는 것은 변수에 값을 할당하는 것만큼 간단합니다. 예를 들어 Card 클래스의 기본값이 Queen of Hearts를 갖도록 하려면 다음과 같이 하면 됩니다.
from dataclasses import dataclass @dataclass class Card: rank: str = 'Q' suit: str = 'hearts'
일반적인 사용 사례는 멋지게 구조화된 데이터 클래스를 JSON으로 변환하는 것입니다. 예를 들어 데이터를 데이터베이스로 내보내거나 브라우저로 보내려는 경우입니다. 나쁜 소식은 데이터 클래스를 JSON으로 변환하는 기본 제공 방법이 없다는 것입니다.
좋은 소식은 작업을 단순화하는 dataclasses-json이라는 Python 패키지가 있다는 것입니다. 그러나 추가 데코레이터가 필요합니다. pip install 명령이나 Pipenv와 같은 것을 사용하여 패키지를 설치해야 하며 가급적이면 가상 환경 내부에 설치해야 합니다. 예:
$ pip install dataclasses-json
다음은 패키지를 사용하는 방법의 예입니다.
from dataclasses import dataclass from dataclasses_json import dataclass_json @dataclass_json @dataclass class Card: rank: str = 'Q' suit: str = 'hearts' card = Card() print(card.to_json())
{"rank": "Q", "suit": "hearts"}
또 다른 방법은 Python 상속을 사용하고 JSONEncoder 클래스에서 상속하여 고유한 사용자 지정 인코더를 만드는 것입니다. 여기서 장점은 외부 패키지를 설치할 필요가 없다는 것입니다. 이 블로그 게시물에서 이 작업을 수행하는 방법을 배울 수 있습니다.
python
이 문서에서는 gRPC를 사용하는 AXC F 3152를 사용하여 Python으로 간단한 프로세스 데이터에 액세스하고 쓰는 방법을 설명합니다. (https://www.plcnext.help/te/Service_Components/gRPC_Introduction.htm) 전제조건 먼저 PLC 외부(예:Windows 시스템)에서 필요한 파일을 준비해야 합니다. Python 3.9 설치(3.10에서는 오류가 발생할 수 있음) .proto 파일에서 코드를 생성하는 데 필요한 Python 패키지 설치:pip install grpcio-to
이 기사에서는 PLCnext Controller에 이미 설치된 SQLite 데이터베이스 엔진을 사용하여 GDS(Global Data Space)를 통해 제공되는 데이터를 저장하는 방법에 대해 설명합니다. 데이터베이스는 프로세스 데이터를 표준화된 방식으로 저장할 수 있도록 하며 SFTP를 사용하여 다른 시스템으로 내보낼 수 있습니다. plcncli 도구 버전이 컨트롤러의 펌웨어 버전과 일치하는지 확인하십시오. Eclipse C++ 프로젝트 생성 다음 속성을 사용하여 PLCnext Info Center의 지침에 따라 Eclipse에