What is the best way to pass multiple parameters to class init in python?
<p>I am creating a module in python that can take multiple arguments. What would be the best way to pass the arguments to the definition of a method? <br></p>

<pre class="lang-py prettyprint-override">
def abc(arg):
    ...

abc({"host" : "10.1.0.100", "protocol" : "http"})
</pre> 

<pre class="lang-py prettyprint-override">
def abc(host, protocol):
    ...

abc("10.1.0.100", "http")
</pre> 

<pre class="lang-py prettyprint-override">
def abc(**kwargs):
    ...

abc(host = "10.1.0.100", protocol = "http")
</pre> 

<p>Or something else?</p>

<h1>Edit</h1>

<p>I will actually have those arguments (username, password, protocol, host, password2) where none of them are required.</p>
