文章目录
abstract Class
create abstract class in python
from abc import ABC, abstractmethod
class AbstractOperation(ABC):
def __init__(self, operand_a, operand_b):
self.operand_a = operand_a
self.operand_b = operand_b
super(AbstractOperation, self).__init__()
@abstractmethod
def execute(self):
pass
underlines in python
http://igorsobreira.com/2010/09/16/difference-between-one-underline-and-two-underlines-in-python.html
xx: don’t call it, it’s a python call
# turn object into str
def __str__(self):
https://realpython.com/lessons/how-and-when-use-__str__/
generators and iterators
https://stackoverflow.com/questions/1756096/understanding-generators-in-python
create things on the fly, do not need a list to contain the generated things, it means that it is more memory efficient
yield is using generators
global vs nonlocal
# self.variable vs variable
class A:
a = 10 # global variable, shared by all A objects
def __init__(self):
self.a = 10 # unique to object
# Nonlocal vs global
a = 10 # global
def fun():
a = 20
def helper():
nonlocal a
a = 30
read and write files
import re
output_file = open("intents.txt", 'w')
output = []
with open("input.txt") as f:
for line in f.readlines():
line = re.sub(' +', ' ', line) # remove extra spaces
word = line.split(' ', 1)[0] # extract first word
word = word[0].lower() + word[1:]
prompts = line.split(' ', 1)[1].rstrip('\n') # remove first word and remove next line
new_line = 'var ' + word + ' = ' + '"' + prompts + '"' + ';' + '\n'
output_file.write(new_line)
re
https://www.w3schools.com/python/python_regex.asp
- matcher“”里面不可以随意加空格,会被当成match的一部分的
- ±*/作为特殊连字符,如果在matcher里面,需要加\
- "[+-]\d+“和”[+-]|\d+“和”[+-\d+]"不一样,一个match的是+d和-d,一个match的是+或者-或者d+, 一个是match的+,-,d
map, filter and reduce
filter, return a generator
https://docs.python.org/3/library/functions.html#filter
filter(function, iterable)
list(filter(lambda x: x < 0, number_list))
uses
# check if it is a letter
a.isalpha()
# max, mins integer
MAX = float('inf')
callback
function as parameter. call function in another function