Python 如何根据类或组为函数分配变量?
我想做的是这样的:Python 如何根据类或组为函数分配变量?,python,Python,我想做的是这样的: if (color = "red"): a = 1 b = 2 c = 3 break if (color = "blue"): a = 5 b = 6 c = 7 break color = "blue" z = a + b + c print("The answer is = " + str(z)) 我有几个类想要分配变量的值,然后根据我定义的类提取这些值。这是可能的吗?假设您的意思是将类作为一个组
if (color = "red"):
a = 1
b = 2
c = 3
break
if (color = "blue"):
a = 5
b = 6
c = 7
break
color = "blue"
z = a + b + c
print("The answer is = " + str(z))
我有几个类想要分配变量的值,然后根据我定义的类提取这些值。这是可能的吗?假设您的意思是将类作为一个组而不是编程定义,那么您可以使用字典来表示变量的数量
在这种情况下,您可以使用嵌套字典并访问具有O1复杂性的值
d = {'red': {'a': 1, 'b': 2, 'c': 3},
'blue': {'a': 5, 'b': 6, 'c': 7}}
color = 'blue'
d_color = d[color]
z = d_color['a'] + d_color['b'] + d_color['c']
print("The answer is = " + str(z))
# The answer is = 18
或者,更简单地说,您可以通过sum和dict.values对字典中的所有值求和:
我认为简单的解决方案是使用字典,将每种颜色的值分组:
classes = {'red':[1,2,3], 'blue':[5,6,7]} #etc...
color='red'
a,b,c = classes[color]
z = a + b + c
print('The answer is', z)
如果不同颜色的值的数量不同:
z=sum(classes[color])
print('The answer is', z)
我猜您要问的是如何放置所有这些if语句,假设您的实际代码有两个以上的if语句?然后调用该函数?在Python/OO术语中,类不是指它,而是指……某组值 如果是:
# Define a function that takes color as a parameter
def colorvals(color):
# Indent your existing if statements to make them part of the function.
# You also need to fix the = SyntaxError; use == for comparison
if (color == "red"):
a = 1
b = 2
c = 3
break
if (color == "blue"):
a = 5
b = 6
c = 7
break
# At the end, return the values to the caller.
return a, b, c
color = "blue"
# Now you can call that function and use the results.
a, b, c = colorvals(color)
z = a + b + c
您可以通过以下方法来改进此功能:
每个if中的参数都是无意义的。
休息没有任何作用。
写a,b,c=1,2,3…或者只返回1,2,3可能更清楚。
对于第一个条件之后的每个条件,您可能需要elif而不是if。
您可能需要一些错误处理,因此,如果您将colorvals称为“nota color”,则返回的异常比UnboundLocalError更有意义。
您应该考虑使用dict而不是一系列if语句。
但是我已经对您现有的代码做了最小的更改,我猜您希望这样做。一种方法是使用一个返回三个值的函数,并使用该函数设置a、b、c
def set_colour(colour_string):
if colour_string == "red":
return 1,2,3
if colour_string == "blue":
return 5,6,7
Print("Invalid colour string")
return None
a,b,c = set_colour("red")
z = a + b + c
print(str(z))
a,b,c = set_colour("blue")
z = a + b + c
print(str(z))
def color_sum(color):
if color == "red":
a = 1
b = 2
c = 3
else:
a = 5
b = 6
c = 7
z = a + b + c
print("The answer is = " + str(z))
color_sum("blue")
希望这对您有所帮助如果您正试图按照@abarnert提到的那样做,您可以将这些条件语句放在函数中,并用任何颜色调用它
def color_sum(color):
if color == "red":
a = 1
b = 2
c = 3
else:
a = 5
b = 6
c = 7
z = a + b + c
print("The answer is = " + str(z))
color_sum("blue")
这个问题似乎有点不清楚,但您可以在类构造函数中为变量定义默认值,如so def _init _self,x=default values您是在问如何获取这些if语句并将它们放入可以调用的函数中吗?好的,abarnert。我明白你的意思。我对python非常陌生,并且正在努力学习。非常感谢jpp。这正是我想做的。@cheme_wilson,当然,没问题。请随意接受有帮助的答案。