在團隊合作當中,使用自己的編碼風格 適用元類編寫

2021-09-29 06:45:44 字數 1509 閱讀 4171

def

camel_to_snake

(name)

:"""

a function that converts camelcase to snake_case.

referred from:

"""import re

s1 = re.sub(

'(.)([a-z][a-z]+)'

, r'\1_\2'

, name)

print

(s1)

# camel_casevar:檢視自己定義的屬性名

s2 = re.sub(

'([a-z0-9])([a-z])'

, r'\1_\2'

, s1)

.lower(

)print

(s2)

# camel_case_var:轉換成功

return s2

class

snakecasemetaclass

(type):

""" future_class_name:子類

future_class_attr:子類的屬性和方法

"""def__new__

(snakecase_metaclass, future_class_name,

future_class_parents, future_class_attr)

: snakecase_attrs =

# 儲存自己的編碼風格

for key, value in future_class_attr.items():

snakecase_attrs[camel_to_snake(key)

]= value

# print(future_class_name, future_class_parents,snakecase_attrs) # 修改後的方法和屬性

return

type

(future_class_name, future_class_parents,snakecase_attrs)

# 返回以經過元類修改的子類

class

someclass

(metaclass=snakecasemetaclass)

:# camel_case_var = 5 # 自己想要的編碼風格

camelcasevar =

5# 合作者編碼的風格

# print( someclass.camelcasevar) # 用元類修改過後不能訪問了

print

(someclass.camel_case_var)

# 這裡能訪問到

輸出:

__module__

__module__

__qualname__

__qualname__

camel_casevar

camel_case_var

5

在openai gym中使用自己的環境

gym是openai推出的強化學習框架,它提供了豐富的介面給開發者使用,再結合其開源的常見演算法實現openai baselines,能夠使開發者方便地將各種強化學習演算法應用到自己的需求中。環境是強化學習演算法中的重要一環,環境如何對agent的動作進行反饋,即state和reward的更新,直接...

在團隊開發中使用 CocoaPods 的小技巧

在我工作的乙個團隊中,我們有很多關於安裝 cocoapods 的問題。團隊成員擁有不同的cocoapods gem的安裝版本,並且當有人執行pod install時,會將事情搞得一團糟。我們最終不得不委託一人安裝 cocoapods,並且把工程推到 github 上以供我們使用。這顯然是不夠靈活的,...

關於在MySQL中使用 utf8 編碼的問題

最近,在極客上刊登一篇文章,講的就是mysql字符集的問題 1.mysql中的utf8編碼不同於utf 8編碼 2.mysql中的utf8,是一種 專屬的編碼 能夠編碼的unicode字元不多 3.utf8編碼支援每個字元三個位元組,而真正的utf 8是每個字元四個位元組 4.utf8mb4才是真正...