メソッドを呼び出した時点ではインスタンスが存在しないため、この方法でメソッドを呼び出すことはできません。
おそらく、次のようなことをしたいでしょう:
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')
if
三項演算子を使用してステートメントを回避できます。
self.domainnaam = domeinnaam if domeinnaam else self.domeinnaamemailadres()
あなたのコードについてコメントしたいと思います。
- まずは英語で書いてみてください。したがって、英語の変数名を使用してください。[
name
not naam
etc.]
- 一部の名前は本当にあいまいです。何をし
domeinnaamemailadres
ますか?私はそれを次のように呼びますdomain_name_from_email_address
。
- docstring
"De klasse customer"
はまったく役に立ちません。行に情報を追加することはclass Customer
なく、英語ではありません。
なぜ英語で書く必要があるのですか?まず第一に、もしそうでなければ、StackOverflow のような場所でどうやって助けを求めることができるのでしょうか? この特定のケースでは、コードはとにかく理解できるほど単純ですが、物事が複雑になると、あなたがやりたいことを得ることができなくなります。
第二に、英語はコンピュータ サイエンスの言語です。あなたが書いたものが他の誰かに読まれる可能性が最小限であるときはいつでも、それはあなたが本当に学び、使用しなければならないものです. このため、母国語 (イタリア語) を使用してコードを記述することはありません。また、コードを誰にも見せないだろうと思っていても、バグが発生し、他の人 (StackOverflow やフォーラム/メーリング リストなど) に尋ねる必要が常にあり、彼らは助けにならないでしょう。彼らは言葉を理解していないからです。