擅长:python、mysql、java
<p>如果您希望用户能够访问您的命名空间,您可以这样做,但后果完全取决于您。不用f字符串,您可以使用<a href="https://docs.python.org/3/library/stdtypes.html#str.format" rel="nofollow noreferrer">^{<cd1>}</a>方法动态插值,语法非常相似。</p>
<p>如果希望用户只访问少量特定变量,可以执行以下操作</p>
<pre><code>name=["deep", "mahesh", "nirbhay"]
user_input = "certi_{element}" # this string i ask from user
for element in name:
my_str = user_input.format(element=element)
print(f"{my_str}")
</code></pre>
<p>当然,您可以将用户输入的密钥重命名为您使用的变量名:</p>
<pre><code>my_str = user_input.format(element=some_other_variable)
</code></pre>
<p>你可以让用户访问你的整个名称空间(或者至少大部分名称空间)。请不要这样做,但请注意您可以:</p>
<pre><code>my_str = user_input.format(**locals(), **globals())
</code></pre>
<p>我使用<code>print(f'{my_str}')</code>而不是<code>print(my_str)</code>的原因是为了避免将文本大括号视为进一步的错误扩展。例如,<code>user_input = 'certi_{{{element}}}'</code></p>