如何在Python中建立類物件?
在Python中,類就像建立物件的藍圖。一旦定義了一個類,就可以基於該類建立物件(也稱為例項)。以下是四種在Python中建立類物件的方法。
建立類和例項
示例
在這個例子中,我們使用`class`關鍵字定義了一個名為`MyClass`的類。然後,我們使用類名後的括號`()`建立一個名為`obj`的類例項。這將建立一個空物件,它是該類的例項。
class MyClass:
pass
obj = MyClass()
print(obj)
輸出
<__main__.MyClass instance at 0x7f1b31f44640>
建立帶有`__init__()`方法的類
示例
在這個例子中,我們定義了一個名為`MyClass`的類,它帶有一個`__init__()`方法。當我們建立該類的例項時,將呼叫此方法。它使用作為引數傳遞的值初始化物件的屬性。
然後,我們建立名為`obj`的類例項,並傳入引數`1`和`2`。這將建立一個具有屬性`x=1`和`y=2`的物件。
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
obj = MyClass(1, 2)
print(obj.x)
print(obj.y)
輸出
1 2
建立帶有`classmethod()`的類
示例
類方法是一個屬於類的特殊函式,可用於建立該類的新物件或修改現有物件。它就像建立或更改特定型別物件的配方。
假設我們有一個名為Animal的類,它有一個名為species的屬性。我們可以建立一個名為make_sound的類方法,該方法返回一個字串,表示該物種的動物發出的聲音。例如,狗可能會說“汪汪!”,貓可能會說“喵喵!”。
class Animal:
def __init__(self, species):
self.species = species
@classmethod
def make_sound(cls, species):
if species == "dog":
return "Woof woof!"
elif species == "cat":
return "Meow!"
else:
return "I don't know what sound that animal makes."
dog = Animal("dog")
print(dog.make_sound("dog"))
cat = Animal("cat")
print(cat.make_sound("cat"))
bird = Animal("bird")
print(bird.make_sound("bird"))
輸出
Woof woof! Meow! I don't know what sound that animal makes.
建立現有類的子類
示例1
在這個例子中,我們定義了一個名為`ParentClass`的類。然後,我們使用語法`class ChildClass(ParentClass):`定義`ParentClass`的子類`ChildClass`。這將建立一個`ParentClass`的子類,它繼承其所有屬性和方法。
然後,我們使用類名後的括號`()`建立一個名為`obj`的`ChildClass`例項。這將建立一個空物件,它是`ChildClass`的例項,進而繼承`ParentClass`的所有屬性和方法。
class ParentClass:
pass
class ChildClass(ParentClass):
pass
obj = ChildClass()
print(obj)
輸出
<__main__.ChildClass object at 0x7fb710464ee0>
示例2
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"My name is {self.name} and I am {self.age} years old.")
# creating an object of Person class
person1 = Person("Alice", 25)
# calling the introduce method of Person class object
person1.introduce()
輸出
My name is Alice and I am 25 years old.
在這個例子中,我們定義了一個Person類,它有兩個例項變數name和age,以及一個列印人的姓名和年齡的方法introduce。然後,我們透過呼叫其建構函式並傳入引數“Alice”和25來建立Person類的物件person1。最後,我們呼叫person1物件的introduce方法,該方法列印該人的姓名和年齡。
示例3
在這個例子中,我們定義了一個Car類,它有三個例項變數make、model和year,以及一個返回包含汽車年份、製造商和型號的格式化字串的方法get_info。然後,我們透過呼叫其建構函式並傳入引數“Toyota”、“Corolla”和2022來建立Car類的物件car1。最後,我們呼叫car1物件的get_info方法,該方法返回一個包含有關汽車資訊的字串,我們使用print函式列印它。
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def get_info(self):
return f"{self.year} {self.make} {self.model}"
# creating an object of Car class
car1 = Car("Toyota", "Corolla", 2022)
# calling the get_info method of Car class object
print(car1.get_info())
輸出
2022 Toyota Corolla
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP