01內(nèi)置的類函數(shù)
內(nèi)置類屬性: python每個類的都有的屬性
name #獲取類的名字
doc #回去類的說明文檔
dict # 對象.dict 類.dict
module 獲取當(dāng)前類所在模塊的名字
bases 獲取哦當(dāng)前類的父類
class Cat :
number = 0
def __init__(self,name,color):
self.name = name
self.color = color
def run(self):
print("pao")
@staticmethod
def shout():
print("miao")
@classmethod
def get_number(cls):
print("%d" % cls.number)
if __name__ == "__main__":
print(Cat.__name__)
print(Cat.__doc__)
02 私有化
- 兩個下劃線開頭苟穆,聲明該屬性為私有,不能在類的外部被使用或直接訪問
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
if __name__ == "__main__":
p1 = Person("zhang","18")
03 getter和setter
1.屬性假的私有化: 聲明對象屬性的時候,在屬性名前加一個下劃線,來告訴別人,這個不能直接diaoyong
通過getter和setter來獲取屬性和修改屬性的值
2.如果在獲得對象的屬性前,需要干點別的事情 添加getter
3.如果在給某個屬性賦值前,干點別的事, 添加setter.
class Syudent:
def __init__(self):
self._name = ""
self._score= 0
self._age = 0
@property # 給屬性 _name 添加getter
def name(self):
return self._name
@property
def score(self):
return self._score
@name.setter
def name(self,value):
self._name = value
@score.setter
def score(self,value):
self._score = value
if __name__ == "__main__":
stu1 = Syudent()
stu1._name = "san"
print(stu1.name)
stu2 = Syudent()
stu2.score = 100
print(stu2.score)
04 繼承
python 中類是可以繼承的,并且支持多繼承
class 類名(父類):
屬性
方法
說明: python 中的所有的類默認(rèn)繼承 基類 object
2.能繼承哪些內(nèi)容?
繼承:直接應(yīng)有父類的屬性和方法(繼承后 上家還在)
a.對象的屬性和方法,....都可以被繼承
b.slots 不能被繼承
c.getter 和 setter 會被繼承
class Person :
def __init__(self):
self.name = ""
self.age = ""
self.sex = ""
def eat(self):
print("cc")
class Student(Person):
"""xueshrn"""
pass
if __name__ == "__main__":
stu = Student()
stu.name ="ming"
print()