在类中获取 f 字符串无效语法 [关闭]
Posted
技术标签:
【中文标题】在类中获取 f 字符串无效语法 [关闭]【英文标题】:Getting a f-string invalid syntax in class [closed] 【发布时间】:2022-01-23 21:59:47 【问题描述】:我是一名 Python 初学者,正在 class
上做一个小作业。但我遇到了f-string: invalid syntax
的以下代码:
class Restaurant:
def __init__(self,res_name,cuisine_type):
self.res_name = res_name
self.cuisine_type = cuisine_type
def describe_restaurant(self):
"""Describes the restaurant."""
print(f"The name of the restaurant is self.res_name.title().") #Getting error here
print(f"The type of cuisine in this restaurant is self.cuisine_type.title().")
def open_restaurant(self):
"""Describes whether the restaurant is open."""
print(f"The self.name.title() is open.")
restaurant = Restaurant("abc def","pqr")
print(restaurant.res_name)
print(restaurant.cuisine_type)
restaurant.describe_restaurant()
restaurant.open_restaurant()
请帮帮我。
【问题讨论】:
请同时发布错误信息。 错字:大括号末尾的尾随点。 【参考方案1】:花括号中有一个尾随.
。据说,您打算在他们之后拥有它:
def describe_restaurant(self):
"""Describes the restaurant."""
print(f"The name of the restaurant is self.res_name.title().")
# Here ------------------------------------------------------^
print(f"The type of cuisine in this restaurant is self.cuisine_type.title().")
# And here ------------------------------------------------------------------^
【讨论】:
其实代码有很多问题。去掉尾随点后,我得到了这个错误AttributeError: 'Restaurant' object has no attribute 'name'
。这是因为在第 13 行调用了一个不存在的类属性【参考方案2】:
看起来你放错了一个点。而不是
print(f"The name of the restaurant is self.res_name.title().")
试试
print(f"The name of the restaurant is self.res_name.title().")#Notice the dot is moved out of the brackets.
另外,将下一行更改为
print(f"The type of cuisine in this restaurant is self.cuisine_type.title().")#Again, I just moved the dot.
【讨论】:
以上是关于在类中获取 f 字符串无效语法 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
用函数名作为字符串将 std::function 包装在类中