_xx 单下划线开头
Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范.
Python中不存在真正的私有方法。为了实现类似于c++中私有方法,可以在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。
"__"双下划线
这个双下划线更会造成更多混乱,但它并不是用来标识一个方法或属性是私有的,真正作用是用来避免子类覆盖其内容。
"xx"前后各双下划线
当你看到"this"的时,就知道不要调用它。为什么?因为它的意思是它是用于Python调用的
“xx”经常是操作符或本地函数调用的magic methods。在上面的例子中,提供了一种重写类的操作符的功能。
在特殊的情况下,它只是python调用的hook。例如,init()函数是当对象被创建初始化时调用的;new()是用来创建实例。
python float类型数据计算有误
代码:
def tumple_str_to_list(tumple_str):
step = tumple_str[1:-1].split(",")
start = float(step[0])
end = float(step[1])
interval = float(step[2])
num = start
num_list = []
while num < end:
num_list.append(num)
num = num + interval
return num_list
num = tumple_str_to_list("(0,1,0.1)")
print(num)
结果:[0.0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.7999999999999999, 0.8999999999999999, 0.9999999999999999]
修改方法:使用decimal
def tumple_str_to_list(tumple_str):
step = tumple_str[1:-1].split(",")
start = Decimal(step[0])
end = Decimal(step[1])
interval = Decimal(step[2])
num = start
num_list = []
while num < end:
num_list.append(float(num))
num = num + interval
return num_list
num = tumple_str_to_list("(0,1,0.1)")
print(num)
结果:[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]