Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.5.1-变量返回无_Python_Python 3.x_Nonetype - Fatal编程技术网

Python 3.5.1-变量返回无

Python 3.5.1-变量返回无,python,python-3.x,nonetype,Python,Python 3.x,Nonetype,我的问题是关于Udacity任务中的一些代码。以下代码未返回任何值。我假设我没有正确地从“规范化”函数调用“标量”函数。行norm=self.scalar(scale)返回类型none。谁能给我一个指针吗 代码: 问题是您试图从scalar获取一个值,即使它不返回任何内容。我不完全确定你想返回什么,所以你必须自己处理 一个值得注意的问题是,您的方法调用了my_vector实例的属性。从技术上讲,这不是问题,但可能应该改变。您的代码应该如下所示 my_vector = Vector([1,2])

我的问题是关于Udacity任务中的一些代码。以下代码未返回任何值。我假设我没有正确地从“规范化”函数调用“标量”函数。行
norm=self.scalar(scale)
返回类型none。谁能给我一个指针吗

代码:


问题是您试图从
scalar
获取一个值,即使它不返回任何内容。我不完全确定你想返回什么,所以你必须自己处理

一个值得注意的问题是,您的方法调用了
my_vector
实例的属性。从技术上讲,这不是问题,但可能应该改变。您的代码应该如下所示

my_vector = Vector([1,2])

my_vector.normalized()

Python有一个很酷的小技巧,如果没有指定,它总是返回None。所以,如果您编写一个函数helloworld,它不返回任何内容,那么您将一无所获

例如:

def hello_world():
  print('hello world')

result = hello_world()
print(result)  # prints nothing cause result==None
scalar
方法中没有return语句,因此它总是不返回任何语句

我猜您希望返回您在scalar中创建的对象

def scalar(self, c):
    new_coordinates = [Decimal(c)*x for x in self.coordinates]
    return new_coordinates
还是为了简洁

def scalar(self, c):
    return [Decimal(c)*x for x in self.coordinates]

那么,标量方法中有返回语句吗?这是合法的导入方式吗?这可能不是问题的根源,但不应该是:
import math
在一行上,而
from decimal import decimal,getcontext
在它自己的行上?@Igor我认为这是一个复制粘贴问题,可能应该是
import math;从十进制输入..
其中
是一个newline@NickHumrich这是因为Blckknght试图修复一个导致代码顶部和底部不能被格式化的格式化问题。由于作者没有用两个空格来结束他们的代码行,这意味着在代码行之间插入了一个空格而不是换行。@GarethPW我修复了格式问题,而不是根问题,但我承认这是一个问题。从技术上讲,这是一个问题吗?从以类的实例作为第一个参数的类调用类方法将应用实例为
self
的函数。虽然作者可能不想以这种方式使用函数,但它并不是真的“错”。@o_o我想你是对的。作为一个评论,这可能会更好。@GarethPW:谢谢你指出这一点。我感谢您的反馈!换句话说,将
scalar
方法中的
new\u坐标=…
更改为
return…
将解决此问题。@o\u o将此添加到回答中感谢大家-缺少返回行是根本原因。我感谢对一个初学者的帮助和耐心。
def scalar(self, c):
    return [Decimal(c)*x for x in self.coordinates]