Python 字典或列表操作的命名约定
Python Naming Conventions for Dictionary or List Manipulations
在 OOP 编码中,有一个长期存在的命名约定来命名 accessor/mutator 方法 get_something 和 set_something。这些直接访问或操作属性。
但是,如果某些东西的类型类似于 Python 中的 dict
或 list
,那么命名操纵函数的更好选择是什么?
例如,
我有一个名为booklist
的list
,里面有我想读的书名。我想命名将新书附加到 booklist
的函数。
booklist = ["Clean Code", "Code Complete"]
def insert_book_into_booklist(new_book):
booklist.append(new_book)
insert_book_into_booklist
还有更好的选择吗?就像 append_book_in_booklist
或 set_booklist
?
我有一个名为 booklist
的 dict
。键是我想读的书名,值是国际标准书号 (ISBN)。我想命名将新书插入 booklist
的函数。
booklist = {"Clean Code": "9789862017050", "Code Complete": "9789536185344"}
def insert_book_into_booklist(new_book, isbn):
if new_book not in booklist:
booklist[new_book] = isbn
insert_book_into_booklist
还有更好的选择吗?就像set_booklist
?
谢谢。
正如您提到的 OOP,让我们假设您的 "booklist" 是 class 的成员:
class BookList(object):
def __init__(self):
self.booklist = []
因此,如果您想将新书添加到您的列表中,请将您的方法命名为动词,即做您需要的,例如 "add_book"。此外,您不需要添加“_into_booklist”,因为您的 class 本身就是一个 BookList,这足以理解该书将被添加到哪里:
class BookList(object):
def __init__(self):
self.booklist = []
def add_book(book):
self.booklist.append(book)
此外,您可以使此方法适用于 ISBN:
class BookList(object):
def __init__(self):
# creating dict, not list
self.booklist = {}
def add_book(book, isbn):
self.booklist[book] = isbn
另外,作为EV。 Kounis 在评论中说,你可以省略方法的“_book”部分,只留下 "add",但如果你的 class 将来变得更复杂,这个名字可能会产生歧义。例如,如果你有"add_book"方法,你可以在以后添加"add_books"方法(一次添加很多书),名字的含义很容易理解。但是如果你把它缩短到"add",就不太清楚了,这个方法实际上添加了什么。
在 OOP 编码中,有一个长期存在的命名约定来命名 accessor/mutator 方法 get_something 和 set_something。这些直接访问或操作属性。
但是,如果某些东西的类型类似于 Python 中的 dict
或 list
,那么命名操纵函数的更好选择是什么?
例如,
我有一个名为
booklist
的list
,里面有我想读的书名。我想命名将新书附加到booklist
的函数。booklist = ["Clean Code", "Code Complete"] def insert_book_into_booklist(new_book): booklist.append(new_book)
insert_book_into_booklist
还有更好的选择吗?就像append_book_in_booklist
或set_booklist
?
我有一个名为
booklist
的dict
。键是我想读的书名,值是国际标准书号 (ISBN)。我想命名将新书插入booklist
的函数。booklist = {"Clean Code": "9789862017050", "Code Complete": "9789536185344"} def insert_book_into_booklist(new_book, isbn): if new_book not in booklist: booklist[new_book] = isbn
insert_book_into_booklist
还有更好的选择吗?就像set_booklist
?
谢谢。
正如您提到的 OOP,让我们假设您的 "booklist" 是 class 的成员:
class BookList(object):
def __init__(self):
self.booklist = []
因此,如果您想将新书添加到您的列表中,请将您的方法命名为动词,即做您需要的,例如 "add_book"。此外,您不需要添加“_into_booklist”,因为您的 class 本身就是一个 BookList,这足以理解该书将被添加到哪里:
class BookList(object):
def __init__(self):
self.booklist = []
def add_book(book):
self.booklist.append(book)
此外,您可以使此方法适用于 ISBN:
class BookList(object):
def __init__(self):
# creating dict, not list
self.booklist = {}
def add_book(book, isbn):
self.booklist[book] = isbn
另外,作为EV。 Kounis 在评论中说,你可以省略方法的“_book”部分,只留下 "add",但如果你的 class 将来变得更复杂,这个名字可能会产生歧义。例如,如果你有"add_book"方法,你可以在以后添加"add_books"方法(一次添加很多书),名字的含义很容易理解。但是如果你把它缩短到"add",就不太清楚了,这个方法实际上添加了什么。