<p>不能以这种方式调用该方法,因为调用时实例不存在。你知道吗</p>
<p>可能你想做一些类似的事情:</p>
<pre><code>class Customer:
"De klasse customer"
def __init__(self, naam, adres, woonplaats, email, domeinnaam= ""):
self.naam = naam
self.adres = adres
self.woonplaats = woonplaats
self.email = email
self.domeinnaam = domeinnaam
if not self.domeinnaam:
#domeinnaam not provided, build one using self.email
self.domeinnaam = self.domeinnaamemailadres()
def domeinnaamemailadres(self):
return self.email[self.email.find("@"):]
a = Customer('Name1', 'address', 'Utrecht', 'Email1@hotmail.com')
b = Customer('Name2', 'Bonestaak', 'Maarssen', 'Bijjaapishetaltijdraakhotmail.com')
</code></pre>
<p>可以使用三元运算符避免<code>if</code>语句:</p>
<pre><code>self.domainnaam = domeinnaam if domeinnaam else self.domeinnaamemailadres()
</code></pre>
<p>我想对你的代码做些评论。你知道吗</p>
<ol>
<li>首先,试着用英语写作。所以使用英文变量名。[<code>name</code>而不是<code>naam</code>等等]</li>
<li>有些名字真的很晦涩。<code>domeinnaamemailadres</code>做什么?我把它叫做<code>domain_name_from_email_address</code>。你知道吗</li>
<li>docstring <code>"De klasse customer"</code>是完全无用的。它不向<code>class Customer</code>行添加任何信息,也不是英文的。你知道吗</li>
</ol>
<p>你为什么要用英语写作?首先,如果你不这样做,你怎么能在像StackOverflow这样的地方寻求帮助呢?在这个特定的例子中,代码非常简单,无论如何我都能理解,但是如果事情变得复杂,那么我就无法得到您想要做的事情。你知道吗</p>
<p>其次,英语是计算机科学的语言。这是你必须学习和使用的东西,只要你写的东西被别人读到的可能性很小。因此我从不使用母语(意大利语)编写代码。
即使你认为你永远不会向任何人展示代码,你也可能最终会遇到一个bug,需要询问其他人(例如,在StackOverflow或某个论坛/邮件列表上),而<em>bam</em>他们无法帮助你,因为他们一个字也听不懂。你知道吗</p>