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才是真正...