【Python】定義結構體,沒有結構體,只能定義一個類


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

原文:https://www.cnblogs.com/ibingshan/p/10375643.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM