如何将关键字传递给函数以使用默认参数

时间:2018-05-30 23:06:56

标签: python

我应该传递什么来使用" name"的默认值?我不想明确传递' lisa'因为它是默认参数,用户可能不知道。但是如果我传递一个变量" name",我必须使用if else子句来传递函数才能打印" lisa"。

def print_name(name='lisa'):
    print name

if name != '':
    print_name(name) 
else:
    print_name()  # print lisa

1 个答案:

答案 0 :(得分:3)

这里你可能想要的是让函数更复杂一点:

def print_name(name=None):
    if not name:
        name='lisa'
    print name

...所以你可以简单地调用它:

print_name(name)

if not name:只要name有任何错误 - {默认值是None的默认值,还是空字符串,那么''将为真。这可能不是你想要的 - 也许你想明确地将默认值设置为if name == '':并检查>>> name = '' >>> print_name(name) lisa >>> name = 'alis' >>> print_name(name) alis ,例如 - 但这通常是一个很好的初步猜测。

所以:

>>> print_name()
lisa

...但你仍然可以这样做:

const routes: Routes = [
  {
    path: 'login',
    loadChildren: 'app/modules/auth/auth.module#AuthModule'
  },
  {
    path: '',
    redirectTo: 'dashboard',
    pathMatch: 'full'
  },
  {
    path: 'dashboard',
    loadChildren: 'app/modules/dashboard/dashboard.module#DashboardModule',
    canActivate: [AuthenticationGuard]
  },
  {
    path: 'yards',
    loadChildren: 'app/modules/yards/yards.module#YardsModule',
    canActivate: [AuthenticationGuard]
  },
  {
    path: 'inspections',
    loadChildren: 'app/modules/inspections/inspections.module#InspectionsModule'
  },
  {
    path: 'settings',
    loadChildren: 'app/modules/settings/settings.module#SettingsModule'
  },
  {
    path: 'notfound',
    loadChildren: 'app/modules/errors/errors.module#ErrorsModule'
  },
  {
    path: '**',
    redirectTo: 'notfound'
  }
];

...这可能是您首先添加默认值的原因。