Sıfırdan Uzmanlığa Python Öğrenin

5 yıl önce

Öncelikle Python nedir? Mucidi Guido van Rossum'a göre Python:

Öncelikle Python nedir? Mucidi Guido van Rossum'a göre Python:

"Üst düzey programlama dili ve temel tasarım felsefesi, tamamen kod okunabilirliği ve programcıların kavramları birkaç satır kodda ifade etmelerine olanak tanıyan bir sözdizimi ile ilgilidir."

Benim için Python'u öğrenmenin ilk nedeni, aslında güzel bir programlama dili olmasıydı. Onu kodlamak ve düşüncelerimi ifade etmek gerçekten doğaldı.

Diğer bir neden de Python'da kodlamayı çeşitli şekillerde kullanabilmemizdi: veri bilimi, web geliştirme ve makine öğrenimi burada parlıyor. Quora, Pinterest ve Spotify, arka uç web geliştirmeleri için Python kullanıyor. Öyleyse bunun hakkında biraz bilgi edinelim.

Temeller

1. Değişkenler

Değişkenleri, bir değer depolayan kelimeler olarak düşünebilirsiniz. Bu kadar basit.

Python'da bir değişkeni tanımlamak ve ona bir değer ayarlamak gerçekten çok kolaydır. 1 numarayı "bir" adlı bir değişkende saklamak istediğinizi düşünün. Haydi Yapalım şunu:

bir= 1

Bu ne kadar basitti? Az önce 1 değerini "bir" değişkenine atadınız.

iki= 2
bir_sayı = 10000

Ve istediğiniz diğer değişkenlere başka herhangi bir değer atayabilirsiniz . Yukarıdaki tabloda gördüğünüz gibi, " iki " değişkeni 2 tamsayısını ve " bir_sayı " 10.000'i depolar .

Tam sayıların yanı sıra, booleanlar (Doğru / Yanlış), dizeler, kayan nokta ve diğer birçok veri türünü de kullanabiliriz.

# booleans
true_boolean = True
false_boolean = False

# string
my_name = "Leandro Tk"

# float
book_price = 15.80

2. Kontrol Akışı: koşullu ifadeler

If ", bir ifadenin True veya False olup olmadığını değerlendirmek için bir ifade kullanır. True ise, "if" ifadesinin içindekini yürütür. Örneğin:

if True:
  print("Hello Python If")

if 2 > 1:
  print("2 is greater than 1")

2 büyüktür 1 “böylece baskı ” kod yürütülür.

If " ifadesi yanlışsa " else " ifadesi çalıştırılacaktır .

if 1 > 2:
  print("1 is greater than 2")
else:
  print("1 is not greater than 2")

1 fazla değildir 2 “içeride kod böylece, else ” ifadesi çalıştırılacaktır.

Ayrıca bir " else" ifadesi de kullanabilirsiniz :

if 1 > 2:
  print("1 is greater than 2")
else 2 > 1:
  print("1 is not greater than 2")
else:
  print("1 is equal to 2")

3. Döngü / Yineleyici

Python'da farklı şekillerde yineleme yapabiliriz. İki hakkında konuşacağım: while ve for .

İken Döngü: deyim Doğru iken, bloğun içine kod çalıştırılacaktır. Yani, bu kod numarayı yazdırır 1'e kadar 10 .

num = 1

while num <= 10:
    print(num)
    num += 1

Süre döngü bir “ihtiyacı döngü koşulunu. True kalırsa, yinelemeye devam eder. Bu örnekte, zaman numolduğunu döngü koşulu eşittir .11False

Daha iyi anlamak için başka bir temel kod parçası:

loop_condition = True

while loop_condition:
    print("Loop Condition keeps: %s" %(loop_condition))
    loop_condition = False

Döngü koşulu olan Trueo iterating tutar böylece - biz ayarlayın kadar False.

Döngü için : " num " değişkenini bloğa uygularsınız ve " for " ifadesi onu sizin için yineler. Bu kod ile aynı yazdırır olurken kodu: den 1'e kadar 10 .

for i in range(1, 11):
  print(i)

Görmek? Çok basit. Aralık ile başlar 1ve kadar gider 11inci elemanı ( 10 olan 10inci elemanı).

Liste: Koleksiyon | Dizi | Veri yapısı

1 tamsayısını bir değişkende saklamak istediğinizi düşünün. Ama belki şimdi 2. ve 3, 4, 5 ...

İstediğim tüm tam sayıları milyonlarca değişkende saklamamanın başka bir yolu var mı? Tahmin ettiniz - onları saklamanın gerçekten başka bir yolu var.

Listbir değerler listesini saklamak için kullanılabilen bir koleksiyondur (istediğiniz bu tamsayılar gibi). Öyleyse kullanalım:

my_integers = [1, 2, 3, 4, 5]

Gerçekten çok basit. Bir dizi oluşturduk ve bunu my_integer'da sakladık .

Ama belki soruyorsunuz: "Bu diziden nasıl bir değer alabilirim?"

Harika soru. indeksList adı verilen bir konsepte sahiptir . İlk eleman 0 (sıfır) endeksini alır. İkincisi 1 alır ve bu böyle devam eder. Kaptın bu işi.

Daha açık hale getirmek için diziyi ve her bir elemanı indeksiyle temsil edebiliriz. Ben çizebilirim:

Python sözdizimini kullanarak anlaşılması da kolaydır:

my_integers = [5, 7, 1, 3, 4]
print(my_integers[0]) # 5
print(my_integers[1]) # 7
print(my_integers[4]) # 4

Tam sayıları saklamak istemediğinizi hayal edin. Sadece akrabalarınızın isimlerinin bir listesi gibi dizeleri saklamak istiyorsunuz. Benimki şuna benzer:

relatives_names = [
  "Toshiaki",
  "Juliana",
  "Yuji",
  "Bruno",
  "Kaio"
]

print(relatives_names[4]) # Kaio

Tamsayılarla aynı şekilde çalışır. Güzel.

ListsEndekslerin nasıl çalıştığını yeni öğrendik . Ama yine de size Listveri yapısına nasıl eleman ekleyebileceğimizi göstermem gerekiyor (listeye bir öğe).

Bir en yaygın yöntem, yeni bir değer katmak Listolduğunu append. Nasıl çalıştığını görelim:

bookshelf = []
bookshelf.append("The Effective Engineer")
bookshelf.append("The 4 Hour Work Week")
print(bookshelf[0]) # The Effective Engineer
print(bookshelf[1]) # The 4 Hour Work Week

appendsüper basit. Sadece elemanı (örneğin, " Etkili Mühendis ") appendparametre olarak uygulamanız yeterlidir .

Yeterince ListsBaşka bir veri yapısından bahsedelim.

Sözlük: Anahtar-Değer Veri Yapısı

Artık Listsbunların tam sayılarla indekslendiğini biliyoruz . Peki ya tamsayıları indeks olarak kullanmak istemiyorsak? Kullanabileceğimiz bazı veri yapıları sayısal, dizge veya diğer tür indekslerdir.

DictionaryVeri yapısı hakkında bilgi edelim . Dictionaryanahtar / değer çiftlerinden oluşan bir koleksiyondur. Göründüğü gibi:

dictionary_example = {
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

Anahtar işaret endeksidir değeri . Değere nasıl Dictionary erişiriz ? Sen tahmin ettin - anahtarı kullanarak . Hadi deneyelim:

dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian"
}

print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro
print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk
print("And by the way I'm %s" %(dictionary_tk["nationality"])) # And by the way I'm Brazilian

Benim Dictionaryhakkımda bir yarattım . İsmim, takma adım ve uyruğum. Bu özellikler Dictionary anahtarlardır .

ListUsing index'e nasıl erişeceğimizi öğrendikçe , içinde depolanan değere erişmek için indisleri de ( bağlamdaki anahtarlarDictionary ) kullanıyoruz . Dictionary

Örnekte, içinde depolanan tüm değerleri kullanarak benim hakkımda bir cümle yazdırdım Dictionary. Oldukça basit, değil mi?

Bir başka güzel şey Dictionaryde, her şeyi değer olarak kullanabilmemiz. In Dictionary oluşturulan I, ben eklemek istediğiniz tuşa İçinde “yaş” ve benim gerçek tamsayı yaş:

dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian",
  "age": 24
}

print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro
print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk
print("And by the way I'm %i and %s" %(dictionary_tk["age"], dictionary_tk["nationality"])) # And by the way I'm Brazilian

Burada bir var anahtar (yaş) değeri olarak dize kullanarak (24) çifti tuşu olarak ve tamsayı değeri .

Yaptığımız gibi Lists, bir DictionaryBir değeri işaret eden anahtar , ne Dictionaryolduğunun büyük bir parçasıdır . Bu, ona öğeler eklemekten bahsederken de geçerlidir:

dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian"
}

dictionary_tk['age'] = 24

print(dictionary_tk) # {'nationality': 'Brazilian', 'age': 24, 'nickname': 'Tk', 'name': 'Leandro'}

Sadece bir anahtara bir değer atamamız gerekiyor . Burada karmaşık bir şey yok, değil mi?Dictionary

Yineleme: Veri Yapılarında Döngü

Python Temelleri'nde öğrendiğimiz gibi , Listyineleme çok basittir. Biz Pythongeliştiriciler genellikle Fordöngü kullanırız . Haydi Yapalım şunu:

bookshelf = [
  "The Effective Engineer",
  "The 4 hours work week",
  "Zero to One",
  "Lean Startup",
  "Hooked"
]

for book in bookshelf:
    print(book)

Yani kitap rafındaki her kitap için ( onunla her şeyi yapabiliriz ) yazdırırız. Oldukça basit ve sezgisel. Bu Python.

Bir hash veri yapısı için fordöngüyü de kullanabiliriz , ancak şunları uygularız key:

dictionary = { "some_key": "some_value" }

for key in dictionary:
    print("%s --> %s" %(key, dictionary[key]))

# some_key --> some_value

Bu, nasıl kullanılacağına dair bir örnektir. Her biri için keyde dictionary, biz ve karşılık gelen .printkeyvalue

Bunu yapmanın başka bir yolu da iteritemsyöntemi kullanmaktır .

dictionary = { "some_key": "some_value" }

for key, value in dictionary.items():
    print("%s --> %s" %(key, value))

# some_key --> some_value

İki parametreyi keyve olarak adlandırdık value, ancak bu gerekli değil. Onlara herhangi bir isim verebiliriz. Hadi onu görelim:

dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian",
  "age": 24
}

for attribute, value in dictionary_tk.items():
    print("My %s is %s" %(attribute, value))

# My name is Leandro
# My nickname is Tk
# My nationality is Brazilian
# My age is 24

Özniteliği için bir parametre olarak kullandığımızı görebiliriz Dictionary keyve düzgün çalışıyor. Harika!

Sınıflar ve Nesneler

Biraz teori:

Nesneler , arabalar, köpekler veya bisikletler gibi gerçek dünya nesnelerinin bir temsilidir. Nesneler iki ana özelliği paylaşır: veri ve davranış .

Arabaların tekerlek sayısı, kapı sayısı ve oturma kapasitesi gibi verileri vardır. Ayrıca davranış sergilerler : hızlanabilir, durabilir, ne kadar yakıt kaldığını gösterebilir ve daha pek çok şey.

Nesneye yönelik programlamada verileri nitelikler ve davranışlar olarak yöntem olarak tanımlıyoruz . Tekrar:

Veri → Nitelikler ve Davranış → Yöntemler

Ve bir Sınıf , tek tek nesnelerin oluşturulduğu plandır. Gerçek dünyada, genellikle aynı türden birçok nesne buluyoruz. Arabalar gibi. Hepsi aynı marka ve modelde (ve hepsinin bir motoru, tekerlekleri, kapıları vb. Var). Her araba aynı plan setinden yapılmıştır ve aynı bileşenlere sahiptir.

Python Nesne Tabanlı Programlama modu: AÇIK

Python, Nesne Tabanlı bir programlama dili olarak şu kavramlara sahiptir: sınıf ve nesne .

Sınıf, nesneleri için bir model, bir plandır.

Yani yine, bir sınıf, sadece bir model veya nitelikleri ve davranışı tanımlamanın bir yoludur (teori bölümünde bahsettiğimiz gibi). Örnek olarak, bir araç sınıfı , hangi nesnelerin araç olduğunu tanımlayan kendi niteliklerine sahiptir . Tekerlek sayısı, tank tipi, oturma kapasitesi ve maksimum hız, bir aracın özellikleridir.

Bunu akılda tutarak, sınıflar için Python sözdizimine bakalım :

class Vehicle:
    pass

Sınıfları bir sınıf ifadesiyle tanımlıyoruz - işte bu. Kolay değil mi?

Nesneler , bir sınıfın örnekleridir . Sınıfı adlandırarak bir örnek oluşturuyoruz.

car = Vehicle()
print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638>

İşte sınıfıncar bir nesnesi (veya örneği) . Vehicle

Araç sınıfımızın dört özelliği olduğunu unutmayın : tekerlek sayısı, depo tipi, oturma kapasitesi ve maksimum hız. Bir araç nesnesi oluştururken tüm bu özellikleri belirliyoruz . Yani burada, sınıfımızı , onu başlattığında veri alacak şekilde tanımlıyoruz :

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

Biz kullanmak init yöntemi . Buna yapıcı yöntem diyoruz. Yani araç nesnesini yarattığımızda, bu nitelikleri tanımlayabiliriz . Tesla Model S'yi sevdiğimizi ve bu tür bir nesneyi yaratmak istediğimizi hayal edin . Dört tekerleği var, elektrik enerjisiyle çalışıyor, beş koltuk için yer var ve maksimum hız 250km / saat (155 mph). Bu nesneyi oluşturalım :

tesla_model_s = Vehicle(4, 'electric', 5, 250)

Dört tekerlek + elektrikli “depo tipi” + beş koltuk + 250 km / saat maksimum hız.

Tüm öznitelikler ayarlanmıştır. Fakat bu niteliklerin değerlerine nasıl ulaşabiliriz? Biz onlar hakkında soran nesneye bir mesaj göndermek . Biz buna yöntem diyoruz . Bu var nesnenin davranış . Haydi uygulayalım:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

    def number_of_wheels(self):
        return self.number_of_wheels

    def set_number_of_wheels(self, number):
        self.number_of_wheels = number

Bu iki yöntem bir uygulamasıdır number_of_wheels ve set_number_of_wheels . Biz buna getter& diyoruz setter. Çünkü ilki öznitelik değerini alır ve ikincisi öznitelik için yeni bir değer belirler.

Python, biz kullanarak da yapabilirsiniz @propertydecorators) tanımlamak için getters ve setters. Bunu kodla görelim:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

    @property
    def number_of_wheels(self):
        return self.number_of_wheels

    @number_of_wheels.setter
    def number_of_wheels(self, number):
        self.number_of_wheels = number

Ve bu yöntemleri öznitelikler olarak kullanabiliriz:

tesla_model_s = Vehicle(4, 'electric', 5, 250)
print(tesla_model_s.number_of_wheels) # 4
tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2
print(tesla_model_s.number_of_wheels) # 2

Bu, yöntemleri tanımlamaktan biraz farklıdır. Yöntemler öznitelikler olarak çalışır. Örneğin, yeni tekerlek sayısını belirlediğimizde, ikisini parametre olarak uygulamıyoruz, ancak 2 değerini olarak ayarlıyoruz number_of_wheels. Bu, yazmanın pythonic getterve setterkodlamanın bir yoludur .

Ancak " make_noise " yöntemi gibi başka şeyler için de yöntemleri kullanabiliriz . Hadi onu görelim:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

    def make_noise(self):
        print('VRUUUUUUUM')

Bu yöntemi çağırdığımızda, yalnızca bir "VRRRRUUUM" dizesi döndürür .

tesla_model_s = Vehicle(4, 'electric', 5, 250)
tesla_model_s.make_noise() # VRUUUUUUUM

Kapsülleme: Bilgileri Gizleme

Kapsülleme, nesnelerin verilerine ve yöntemlerine doğrudan erişimi kısıtlayan bir mekanizmadır. Ancak aynı zamanda bu veriler (nesnelerin yöntemleri) üzerinde çalışmayı kolaylaştırır.

"Kapsülleme, veri üyelerini ve üye işlevini gizlemek için kullanılabilir. Bu tanıma göre, kapsülleme, bir nesnenin dahili temsilinin genellikle nesnenin tanımının dışında görünümden gizlendiği anlamına gelir. " - Wikipedia

Bir nesnenin tüm iç temsili dışarıdan gizlidir. Yalnızca nesne dahili verileriyle etkileşime girebilir.

Öncelikle, örnek değişkenlerin ve yöntemlerin nasıl publicve nasıl çalıştığını anlamamız gerekir non-public.

Herkese Açık Örnek Değişkenleri

Bir Python sınıfı için, public instance variableyapıcı yöntemimiz içinde bir başlatabiliriz . Şuna bir bakalım:

Yapıcı yöntemi içinde:

class Person:
    def __init__(self, first_name):
        self.first_name = first_name

Burada first_namedeğeri argüman olarak public instance variable.

tk = Person('TK')
print(tk.first_name) # => TK

Sınıf içinde:

class Person:
    first_name = 'TK'

Burada, first_nameargüman olarak uygulamamıza gerek yoktur ve tüm örnek nesneleri class attributeile başlatılmış olacaktır TK.

tk = Person()
print(tk.first_name) # => TK

Güzel. Artık public instance variablesve kullanabileceğimizi öğrendik class attributes. Parçayla ilgili bir başka ilginç şey publicde değişken değerini yönetebilmemiz. Bununla ne demek istiyorum? Bizim object: onun değişken değerini yönetebilir Getve Set değişken değerleri.

Tutulması Persondüşünülerek sınıfı, onun için başka bir değer ayarlamak istediğiniz first_name değişkenin:

tk = Person('TK')
tk.first_name = 'Kaio'
print(tk.first_name) # => Kaio

Oraya gidiyoruz. Örnek değişkenine başka bir değer ( kaio) belirledik first_nameve o değeri güncelledi. Bu kadar basit. Bir olduğuna göre publicdeğişken, bunu yapabiliriz.

Herkese açık olmayan Örnek Değişkeni

Python'da hiçbir öznitelik gerçekten özel olmadığından (genellikle gereksiz miktarda çalışma olmadan) burada "özel" terimini kullanmıyoruz. - PEP 8

Olarak, hem yapıcı yöntemi hem de sınıf içinde public instance variabletanımlayabiliriz non-public instance variable. Sözdizimi farkı: for non-public instance variables , addan _önce bir alt çizgi ( ) kullanın variable.

"Bir nesnenin içinden erişilemeyen 'özel' örnek değişkenleri Python'da mevcut değildir. Bununla birlikte, çoğu Python kodunun izlediği bir kural vardır: ön ekli bir alt çizgi (örneğin, _spam) API'nin genel olmayan bir parçası olarak ele alınmalıdır (bir işlev, bir yöntem veya bir veri üyesi olsun) "- Python Yazılım Vakfı

İşte bir örnek:

class Person:
    def __init__(self, first_name, email):
        self.first_name = first_name
        self._email = email

emailDeğişkeni gördün mü ? Biz a'yı böyle tanımlıyoruz non-public variable:

tk = Person('TK', 'tk@mail.com')
print(tk._email) # tk@mail.com

Ona erişebilir ve güncelleyebiliriz. Herkese açık olmayan değişkenler yalnızca bir kuraldır ve API'nin genel olmayan bir parçası olarak görülmelidir.

Bu yüzden bunu sınıf tanımımızın içinde yapmamıza izin veren bir yöntem kullanıyoruz. Bunu anlamak için iki yöntem ( email ve update_email) uygulayalım:

class Person:
    def __init__(self, first_name, email):
        self.first_name = first_name
        self._email = email

    def update_email(self, new_email):
        self._email = new_email

    def email(self):
        return self._email

Artık non-public variablesbu yöntemleri kullanarak güncelleyebilir ve erişebiliriz . Bakalım:

tk = Person('TK', 'tk@mail.com')
print(tk.email()) # => tk@mail.com
tk._email = 'new_tk@mail.com'
print(tk.email()) # => tk@mail.com
tk.update_email('new_tk@mail.com')
print(tk.email()) # => new_tk@mail.com

Kamu Yöntemi

İle public methodsbunları sınıfımızın dışında da kullanabiliriz:

class Person:
    def __init__(self, first_name, age):
        self.first_name = first_name
        self._age = age

    def show_age(self):
        return self._age

Hadi test edelim:

tk = Person('TK', 25)
print(tk.show_age()) # => 25

Harika - sorunsuz kullanabiliriz.

Halka Açık Olmayan Yöntem

Ama non-public methodsbiz bunu yapamayız. Aynı Person sınıfı uygulayalım , ancak şimdi show_age non-public methodalt çizgi ( _) kullanarak .

class Person:
    def __init__(self, first_name, age):
        self.first_name = first_name
        self._age = age

    def _show_age(self):
        return self._age

Ve şimdi, bunu nesnemizle adlandırmaya çalışacağız non-public method:

tk = Person('TK', 25)
print(tk._show_age()) # => 25

Ona erişebilir ve güncelleyebiliriz. Halka açık olmayan yöntemler yalnızca bir konvansiyondur ve API'nin halka açık olmayan bir parçası olarak görülmelidir.

İşte onu nasıl kullanabileceğimize dair bir örnek:

class Person:
    def __init__(self, first_name, age):
        self.first_name = first_name
        self._age = age

    def show_age(self):
        return self._get_age()

    def _get_age(self):
        return self._age

tk = Person('TK', 25)
print(tk.show_age()) # => 25

Burada bir _get_age non-public methodve bir var show_age public methodshow_age(Bizim sınıfının dışında) En nesne tarafından kullanılabilir ve _get_agesadece sınıf tanımı (iç içinde kullanılan show_agemetot). Ama yine: bir kongre meselesi olarak.

Kapsülleme Özeti

Kapsülleme ile nesnenin iç temsilinin dışarıdan gizlenmesini sağlayabiliriz.

Kalıtım: davranışlar ve özellikler

Bazı nesnelerin bazı ortak noktaları vardır: davranışları ve özellikleri.

Örneğin, babamdan bazı özellikleri ve davranışları miras aldım. Özellik olarak gözlerini ve saçını, sabırsızlığını ve içedönüklüğünü davranış olarak miras aldım.

Nesne yönelimli programlamada, sınıflar ortak özellikleri (veriler) ve davranışları (yöntemleri) başka bir sınıftan devralabilir.

Başka bir örnek görelim ve Python'da uygulayalım.

ElectricCar sınıfı, bu aynı nitelikleri normal Car sınıfından devralır .

class Car:
    def __init__(self, number_of_wheels, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

Bizim Araba sınıfı uygulanmaktadır:

my_car = Car(4, 5, 250)
print(my_car.number_of_wheels)
print(my_car.seating_capacity)
print(my_car.maximum_velocity)

Bir kez başlatıldığında, instance variablesoluşturulanların hepsini kullanabiliriz . Güzel.

Python, biz bir başvuruda parent classiçin child classparametre olarak. Bir ElectricCar sınıfı, Araba sınıfımızdan devralınabilir .

class ElectricCar(Car):
    def __init__(self, number_of_wheels, seating_capacity, maximum_velocity):
        Car.__init__(self, number_of_wheels, seating_capacity, maximum_velocity)

Bu kadar basit. Başka bir yöntem uygulamamıza gerek yok çünkü bu sınıf zaten ona sahip ( Car sınıfından miras alınmıştır ). Bunu kanıtlayalım:

my_electric_car = ElectricCar(4, 5, 250)
print(my_electric_car.number_of_wheels) # => 4
print(my_electric_car.seating_capacity) # => 5
print(my_electric_car.maximum_velocity) # => 250

Güzel.

Bu kadar!

Python temelleri hakkında birçok şey öğrendik:

  • Python değişkenleri nasıl çalışır?

  • Python koşullu ifadeleri nasıl çalışır?

  • Python döngüsü (while & for) nasıl çalışır?

  • Listeler nasıl kullanılır: Koleksiyon | Dizi

  • Sözlük Anahtar-Değer Koleksiyonu

  • Bu veri yapılarını nasıl yineleyebiliriz

  • Nesneler ve Sınıflar

  • Nesnelerin verileri olarak nitelikler

  • Nesnelerin davranışı olarak yöntemler

  • Python alıcıları, ayarlayıcıları ve mülk dekoratörünü kullanma

  • Kapsülleme: bilgileri gizleme

  • Kalıtım: davranışlar ve özellikler

Tebrikler! Python hakkındaki bu yoğun içeriği tamamladınız.

More Posts