self相当于全局变量,如果某个变量会应用到不止一个函数中,那就在__init__
函数中定义带有self的变量;相反,如果这个变量仅出现在一个函数中,像定义的一些用来“中转”的变量(temp等),就不用用self定义。
#两个栈实现队列
#如本例的add_stack和pop_stack,在下边的连个函数中都会出现,而且是彼此牵连的,是全局变量,因此初始化为self变量。
class CQueue:
def __init__(self):
self.add_stack, self.pop_stack = [],[]
def appendTail(self, value: int) -> None:
self.add_stack.append(value)
def deleteHead(self) -> int:
if self.pop_stack:
return self.pop_stack.pop()
if not self.add_stack:
return -1
while self.add_stack:
self.pop_stack.append(self.add_stack.pop())
return self.pop_stack.pop()
str.join(seq)
seq
:待连接的字符
str
:用str所代表的字符来连接seq
实例:
str = '_'
seq = [“a”, "b", "c"]
print(str.join(seq))
输出结果为:
a_b_c
深度学习神经网络参数中经常见到shape:即张量的形状,从前往后对应由外向内的维度。
example:
[[1],[2],[3]]
这个张量的shape为(3,1)
[[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]]
这个张量的shape为(3,2,2),
[1,2,3,4]
这个张量的shape为(4,)
dim:代表张量的维度,之前3个例子的input_dim分别为2,3,1。