Python'da Orta Düzey Nesne Yönelimli Programlama
Jake Roach
Data Engineer
class Person:
def __init__(self, name):
self.name = name
def __eq__(self, other):
return self.name == other.name
== işlevini özelleştirin
__eq__() sihirli yöntemini kullanınself ve other alırbryce = Person("Bryce")
orion = Person("Orion")
print(bryce == orion)
False
chuck = Person("Charles Carmichael")
charles = Person("Charles Carmichael")
print(chuck == charles)
True
class Team:
def __init__(self, team_members):
self.team_members = team_members
# İki Team nesnesi oluşturun, toplamayı deneyin
rookies = Team(["Casey", "Emmitt"])
veterans = Team(["Mike", "Chuck"])
dream_team = rookies + veterans
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
TypeError: unsupported operand type(s) for +: 'Team' and 'Team'
class Team:
def __init__(self, team_members):
# team_members bir ad listesidir
self.team_members = team_members
def __add__(self, other):
# Team nesnelerini toplamak daha büyük bir Team oluşturur
return Team(self.team_members + other.team_members)
+ operatörünü aşırı yüklemek için __add__() sihirli yöntemini kullanınself ve other __add__() yöntemine gönderilirteam_members listesini kullanarak yeni bir Team oluşturun# İki Team nesnesi oluşturun
rookies = Team(["Casey", "Emmitt"])
veterans = Team(["Mike", "Chuck"])
# Bu iki Team'i toplamayı deneyin
dream_team = rookies + veterans
print(type(dream_team))
print(dream_team.team_members)
Team
["Casey", "Emmitt", "Mike", "Chuck"]
class Team:
def __init__(self, team_members):
self.team_members = team_members
class Employee:
def __init__(self, name, title):
self.name = name
self.title = title
def __add__(self, other):
# + operatörünü kullanarak
# her Employee'nin adıyla bir Team oluşturun
return Team([self.name, other.name])
Employee nesnelerini birleştirerek bir Team oluşturmak istersek ne olur?
__add__ Employee sınıfında uygulanırEmployee adlarından bir liste kurarak yeni bir Team üretirEmployee toplamının sonucu tek bir Team olur# İki Employee nesnesi oluşturun
anna = Employee("Anna", "Technical Specialist")
jeff = Employee("Jeffrey", "Musician")
# Bunları toplayarak bir takım oluşturmayı deneyin
audio_team = anna + jeff
print(type(audio_team))
print(audio_team.team_members)
Team
["Anna", "Jeffrey"]
| Operatör | Sihirli Yöntem | Operatör Türü |
|---|---|---|
| - | __sub__ |
Aritmetik |
| != | __ne__ |
Karşılaştırma |
| < | __lt__ |
Karşılaştırma |
| > | __gt__ |
Karşılaştırma |
| += | __iadd__ |
Atama |
| and | __and__ |
Mantıksal |
| in | __contains__ |
Üyelik |
| is | __is__ |
Kimlik |
... Ve daha birçoğu!
Python'da Orta Düzey Nesne Yönelimli Programlama