類
類,簡單理解它就像一個圖紙癣籽,類就是對象的圖紙
類就是一個用來創(chuàng)建對象的對象挽唉!
類就是一個對象!
類是type類型的對象筷狼,定義類實際上就是定義了一個type類型的對象
類也稱對象為類的實例(
instance
)比如瓶籽, int() float() bool() str() list() dict() ... 這些都是類,只是這些都是python內(nèi)部特有的類
1.創(chuàng)建類語法
class MyClass():
pass
mc = MyClass() # mc就是通過MyClass創(chuàng)建的對象埂材,他們都是一類對象
mc_2 = MyClass()
isinstance(mc, MyClass) # isinstance() 用來檢查一個對象是否是一個類的實例
res = isinstance(mc, MyClass)
print(res) # True
2.類的屬性和方法
在類的代碼塊中塑顺,我們可以定義變量和函數(shù)(即稱為方法)
在類中定義的變量,將會成為所有的實例的公共屬性
所有的實例都可以訪問這些屬性
所有的實例都可以通過
對象.方法名()
形式調(diào)用如果方法調(diào)用,默認會傳遞一個參數(shù)严拒,所以方法中至少要定義一個形參
class Person:
name = '孫悟空'
def say_hello(self):
print('你好扬绪!')
p1 = Person()
p1.say_hello()
print(p1.name)
'''
你好!
孫悟空
'''
image-20211212174550625.png
class Person:
name = '孫悟空'
def say_hello(self):
print('你好裤唠!%s' % self.name)
p1 = Person()
p2 = Person()
p1.name = 'p1'
p2.name = 'p2'
p1.say_hello()
p2.say_hello()
'''
你好挤牛!p1
你好!p2
'''
3.類的初始化
1)創(chuàng)建類的流程
p1 = Person() 的運行流程 1.創(chuàng)建一個變量 2.在內(nèi)存中創(chuàng)建一個新對象
3.__ init __(self)方法執(zhí)行 4.將對象的id賦值給變量
在類中可以定義一些特殊方法(魔術(shù)方法)
特殊方法都是以
__
開頭种蘸,__
結(jié)尾的方法特殊方法不需要自己調(diào)用墓赴,特殊時刻自動調(diào)用
舉例:
class Person:
def __init__(self):
print('hello')
def say_hello(self):
print('你好!%s' % self.name)
p1 = Person()
'''
hello
'''
2)類的基本結(jié)構(gòu)
class 類名([父類])
公共屬性...
# 對象的初始化方法
def __ init __(self, xxx)
psss
#其它方法
def method_1 (self, xxx)
psss
def method_2 (self, xxx)
pass
.......
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print('你好航瞭!%s' % self.name)
p1 = Person('我是p1')
print(p1.name)
p1.say_hello()
'''
我是p1
你好诫硕!我是p1
'''
3)練習(xí) — 創(chuàng)建一個狗狗的類
class Dog:
def __init__(self, name, age, eat):
self.name = name
self.age = age
self.eat = eat
def eating(self):
print(self.name + '在開心地吃著%s' % self.eat)
def run(self):
print('%s在快樂的奔跑呀'% self.name)
dog = Dog('大黃', 3, '骨頭')
dog.eating()
dog.run()
'''
大黃在開心地吃著骨頭
大黃在快樂的奔跑呀
'''