2017-08-30 11 views
0

構造体2.0.2パッケージを使用してPython3でデータ構造を作成しています。次のコードを記述すると、後で定義したときに変数iが整数になります。構造体パッケージを使用してPython3内で配列またはリストのデータ型を保証する方法

from structures import * 
class S(Structure): 
    i = Integer 

Test = S() 
Test.i = 4 
print (Test.i) 
Test.i = 4.18 
print (Test.i) 
Test.i = 'A string' 
print (Test.i) 

I、正しいデータ型に丸くすることができなかったものにデータ型を変更しようとしたので、これは最初の2つの印刷文および第三のためのエラー4が得られます。

しかし、変数iをリストまたは整数だけの不規則な配列にしたいとしましょう。私は次のことを試してみる。

Test.i = [45,37.8,14.3] 

と私はリストに変数iを回すことができないことを私に伝えるエラーを取得します。次のことを試してみてください。

from structures import * 
class S(Structure): 
    i = [Integer] 

Test.i = [45,37.8,14.3] 

コードは実行されリストを作成しますが、値は整数に制限されません。リスト内のデータ型と不規則な配列を静的型に制約するために構造体パッケージを取得するにはどうすればよいですか?

+0

このライブラリは、再使用は3年前に更新され、あなたの要件をサポートしていないと私が言うことができる限り、更新されました。積極的に開発され、同様の機能をサポートしている同様のライブラリに移動するか、[Mypy](http://mypy.readthedocs.io/)などのスタティックアナライザを使用してください。 Mypyの場合、 'List [int]'と定義することができます。ここで 'List'は[typing'モジュールのものです](https://docs.python.org/3/library/typing.html)。 –

答えて

0

構造を使用することはできません。自分でcustom typeを作成する必要があります。リストタイプは、値を割り当てる前にlist()キャストを行うだけなので、リストの各項目にintキャストを実行すると、リストキャストが実行されます;

関連する問題