def fun():
print("This function has an error");
def run():
print("good boy")
fun()
run()
上述代码将正确执行,尽管fun()函数执行时打印的字符串之后意外地跟了一个分号,这是因为分号被当作字符串的一部分打印了出来,而Python解释器将其视为字符串终止的非标准方式接受了。
通常,这种写法是不鼓励的,因为它可能导致代码可读性和理解性的下降,虽然在这里技术上没有引发语法错误,但确实不是好的编程实践。正确的做法是使用引号(单引号或双引号)正确地包裹字符串,例如:print("This function has an error")。
def fun():
print("This function has an error")
abc()
def run():
print("good boy")
run()
上述代码运行正常
def fun():
print("This function has an error")
abc(goodboy)
def run():
print("good boy")
fun()
run()
>NameError: name 'abc' is not defined. Did you mean: 'abs'?
上述代码报错
def log_decorator(func):
printdddddf("enter log_decorator")
def wrapper():
print("enter wrapper")
#start_time = time.time()
func()
#end_time = time.time()
#execution_time = end_time - start_time
#print(f"Function {func.__name__} executed in {execution_time} seconds")
return wrapper
#@log_decorator
def say_hello():
time.sleep(1)
printffffffffffff("Hello, world!")
上述代码将不会报错,按道理printffffffffffff("Hello, world!")这一行有问题,应该报错,其实是把printffffffffffff当成一个新函数了,而且所在的函数没有被调用,故而不报错的。
总结:
定义的函数,即使没有调用,但是语法错误会被检查报错
定义的函数,如果没有调用,则里面只检查语法错误,其他函数来源,函数是否存在,调用参数是否对,我们都不关心的。本质上就是不执行,只要没有语法错误,其他的将不管。