基于条件的单行打印语句(Blender Python)

Single Line Print Statement based on condition (Blender Python)

我正在尝试设置条件以在条件为假时打印不同的结果。我能够做到这一点,但结果格式错误。 以下是我尝试过的陈述示例

for mesh in objects:
 if mesh.type=="MESH" and mesh.users>0:
  if not mesh.modifiers:
      print (mesh.name, mesh.parent.name) if mesh.parent else (mesh.name, "no Parent")

01M_M-スカート_3_1 rigidbodies
01N_M-スカート_4_1 rigidbodies
('Cube', 'no Parent')
('smd_bone_vis', 'no Parent')

错误的结果有括号和单引号

for mesh in objects:
 if mesh.type=="MESH" and mesh.users>0:
  if not mesh.modifiers:
      print (mesh.name, mesh.parent.name if mesh.parent else mesh.name, "no Parent")

01M_M-スカート_3_1 rigidbodies no Parent
01N_M-スカート_4_1 rigidbodies no Parent
Cube Cube no Parent
smd_bone_vis smd_bone_vis no Parent

真实结果有两个条件打印

for mesh in objects:
 if mesh.type=="MESH" and mesh.users>0:
  if not mesh.modifiers:
      print( mesh.name, mesh.parent if mesh.parent) else mesh.name, "no Parent"
  File "<blender_console>", line 4
    print( mesh.name, mesh.parent.name if mesh.parent) else mesh.name, "no Parent"

                                                     ^

产生语法错误:语法无效

for mesh in objects:
 if mesh.type=="MESH" and mesh.users>0:
  if not mesh.modifiers:
      print( mesh.name, mesh.parent.name) if mesh.parent else mesh.name, "no Parent"

01M_M-スカート_3_1 rigidbodies
(None, 'no Parent')
01N_M-スカート_4_1 rigidbodies
(None, 'no Parent')
('Cube', 'no Parent')
('smd_bone_vis', 'no Parent')     

制作,如你所见...

如果正确运行,这是我期望的结果

01M_M-スカート_3_1 rigidbodies
01N_M-スカート_4_1 rigidbodies
Cube no Parent
smd_bone_vis no Parent

我这里做错了什么???

我相信你应该使用的是

for mesh in objects:
 if mesh.type=="MESH" and mesh.users>0:
  if not mesh.modifiers:
      print (mesh.name, mesh.parent.name) if mesh.parent else print(mesh.name, "no Parent")

这应该会给你想要的结果。