Python中沒有專門定義結構體的方法,類似於C++,可以使用class標記定義類來代替結構體,其成員可以在構造函數__init__中定義,具體方法如下:
class item: def __init__(self): self.name = '' self.size = 10 self.list = [] a = item() # 定義結構對象 a.name = 'cup' a.size = 8 a.list.append('water')
每次定義一個對象的時候init函數對其進行了一次初始化。
原文鏈接:https://blog.csdn.net/m0_37362454/article/details/82145146
枚舉:
import os import sys if sys.version_info.major + sys.version_info.minor * 0.1 < 3.4: from enum34 import Enum else: from enum import Enum class MyColorEnum(Enum): red = 1 red_alias = 1 blue = 2 green = 'green' MyColorEnum.red.name # get member name string MyColorEnum.red.value # get member value for c in MyColorEnum: print(c) # just one of MyColorEnum.red_alias and MyColorEnum.red, according to the order which itself decides for c in MyColorEnum.__members__.items(): c[0] # str name eg. 'red' c[1] # member eg. MyColorEnum.red # contain 'red_alias' and MyColorEnum.red_alias 'red' in MyColorEnum.__members__ # if member name in Enum 0 in MyColorEnum._value2member_map_ # if value in Enum values MyColorEnum.__members__['red'] # MyColorEnum.red, get member by member name string, if no such member name string, raising KeyError # comparation ################################################################################ MyColorEnum.red is MyColorEnum.red_alias # True MyColorEnum.red == MyColorEnum.red_alias # True MyColorEnum.red != MyColorEnum.red_alias # False #never do this #MyColorEnum.red < MyColorEnum.blue # raising TypeError, Enum values could be different types