内置函数和myfunction的区别是什么

时间:2016-04-12 12:42:15

标签: python

如果我使用这个

def myfunction():
    print('asd')
print(myfunction)

IDE告诉我None

但如果我用这个

import math
print (math.cos(90))

IDE告诉我COS90°

为什么?

3 个答案:

答案 0 :(得分:3)

所有关于回报的价值。

def myfun(x):
    return x

print(myfun("hello"))将返回hello

你的函数(myfunction)没有返回一个值,表示它返回None值。因此,print(内置的python函数)返回该值。

答案 1 :(得分:1)

调用函数时,他们总是返回他们处理的内容。

def myfunction():
    print('asd')

这将打印输出。由于没有显式返回,因此该函数默认返回None

现在让我们为您的函数添加一些复杂性:

def myfunction(text):
    print(text * 2)

这将打印两次获得的文本。它工作得很好。但是,假设您需要将“打印两次”文本存储到变量中。

试试这个:

def myfunction(text):
    print(text * 2)

twoText = myFunction("some text foo")
print(twoText)

输出应如下所示:

some text foosome text foo
None

这种情况正在发生,因为您的功能首先是打印两次some text foo,然后打印您的功能返回。在这种情况下,返回 None,因为没有明确返回

要解决此问题,您只需将print替换为return

def myfunction(text):
    return text * 2

twoText = myFunction("some text foo")
print(twoText)

输出正确,因为您只打印函数的返回值。

some text foosome text foo

数学函数返回如下数据:

def cos(number):
    # Insert super complex math calculation here
    return result

如果没有这样做,你将无法将结果存储在变量中,而只是打印出来。

答案 2 :(得分:0)

如果一个问题是一般性的,那么除了内置函数之外没有任何差别是经过作者命令正确测试和批准的问题;如果你写了一些好的和有用的东西,你也可以做出贡献 - 不要害羞地把它提供给社区; ppl会感谢你。 但如果你的意思完全是你的例子那么你必须改变代码:

def myfunction():
    print('asd')
myfunction()

这是不带参数调用函数的方法,你可以有

def myfunction(n):
    print(n)
myfunction('hi')

这会打印hi等等