真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中的類是什么

這篇文章將為大家詳細(xì)講解有關(guān)Python中的類是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

成都創(chuàng)新互聯(lián)主營卡若網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,卡若h5重慶小程序開發(fā)搭建,卡若網(wǎng)站營銷推廣歡迎卡若等地區(qū)企業(yè)咨詢

類(Class): 

用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個(gè)對象所共有的屬性和方法。對象是類的實(shí)例。

定義和實(shí)例化

類的定義,使用class關(guān)鍵字

class Flower(object):
    pass

添加實(shí)例屬性值

class Flower(object):
    def __init__(self,name,color,height):
    #默認(rèn)值
        self.name=name
        self.color=color
        self.height=height

類的實(shí)例化

class Flower(object):
    def __init__(self,name,color,height):
        self.name=name
        self.color=color
        self.height=height
f=Flower('玫瑰','紅色',20)
print(f.name)
print(f.color)
print(f.height)
輸出:
>>玫瑰
>>紅色
>>20

實(shí)例屬性和類屬性

類沒有實(shí)例屬性時(shí)會(huì)調(diào)用類屬性

class Flower(object):
    height=20
    def __init__(self,name,color):
        self.name=name
        self.color=color
f=Flower('玫瑰','紅色')
print(f.height)
輸出:
>>20

實(shí)例屬性的優(yōu)先級(jí)高于類屬性

class Flower(object):
    height=20
    def __init__(self,name,color,height):
        self.name=name
        self.color=color
        self.height=height
f=Flower('玫瑰','紅色',10)
print(f.height)
輸出:
>>10

刪除實(shí)例屬性

class Flower(object):
    height=20
    def __init__(self,name,color,height):
        self.name=name
        self.color=color
        self.height=height
f=Flower('玫瑰','紅色',10)
del f.height
print(f.height)
輸出:
>>20#由于此時(shí)實(shí)例屬性被刪除,自動(dòng)調(diào)用了類屬性height=20

訪問限制

私有屬性

偽私有屬性_attrname:可以訪問但是不要隨意訪問

私有屬性__attrname:一般不可以訪問

訪問和修改私有屬性

訪問私有屬性

class Student(object):
    def __init__(self,name,score):
        self.__name=name
        self.__score=score

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

s=Student('Jack',88)
#通過自定義方法來訪問私有屬性
print(s.get_name())
print(s.get_score())
#直接訪問私有屬性
print(s._Student__name)
print(s._Student__score)
輸出:
>>Jack
>>88
>>Jack
>>88
>>a

修改私有屬性

class Student(object):
    def __init__(self,name,score):
        self.__name=name
        self.__score=score

    def get_name(self,newname):
        self.__name=newname
        return self.__name

    def get_score(self,newscore):
        self.__score=newscore
        return self.__score

s=Student('Jack',88)
#通過自定義方法修改私有屬性
print(s.get_name('Peter'))
print(s.get_score('85'))
#直接修改私有屬性
s._Student__name='Mark'
s._Student__score='86'
print(s._Student__name)
print(s._Student__score)
輸出:
>>Peter
>>85
>>Mark
>>86

繼承和多態(tài)

獲取對象信息

type()函數(shù)獲取對象信息

判斷函數(shù)類型

import types
def fn():
    pass

print(type(fn)==types.FunctionType)#判斷是否是自定義函數(shù)
print(type(abs)==types.BuiltinFunctionType)#判斷是否是內(nèi)置函數(shù)
print(type(lambda x: x)==types.LambdaType)#判斷是否是lambda函數(shù)
print(type((x for x in range(10)))==types.GeneratorType)#判斷是否是生成器類型
輸出:
>>True
>>True
>>True
>>True

isinstance()函數(shù)獲取對象信息

判斷類對象

class Animal(object):
    pass
class Dog(Animal):
    pass
class Xiaohuang(Dog):
    pass
a=Xiaohuang()
b=Dog()
c=Animal()
print(isinstance(a,Dog))#Xiaohuang是否屬于Dog類
print(isinstance(b,Animal))#Dog是否屬于Animal類
print(isinstance(c,object))#Animal是否屬于object類
輸出:
>>True
>>True
>>True

判斷基本類型數(shù)據(jù)

a=[1,2,3,4,5]
print(isinstance(a,(list,dict)))#判斷a是否屬于列表或者字典類型
輸出:
>>True

內(nèi)置方法的重寫

class myclass():
    def __len__(self):
        return 10
    def __repr__(self):
        return 'rewrite repr!'
    def __str__(self):
        return  'rewrite str!'

a=myclass()
print(len(a)
print(repr(a))
print(str(a))
輸出:
>>10
>>rewrite repr!
>>rewrite str!

定制屬性訪問

hasattr(m,’n’) m:實(shí)例 n:類里面的屬性 確定屬性是否存在

getattr(m,‘n’) m:實(shí)例 n:類里面的屬性 得到指定類屬性的值

setattr(m,’n’,x) m:實(shí)例 n:類里面的屬性 x:設(shè)置屬性的值 有則改無則添加

delattr(m,’n’) m:實(shí)例 n:類里面的屬性 刪除一個(gè)類屬性

實(shí)例屬性的優(yōu)先級(jí)高于類屬性

4.類的析構(gòu)(銷毀無用變量)

5.繼承 重寫

6.多繼承 重寫

在類中

super()可以調(diào)用父類里面的方法

self.方法()可以調(diào)用父類里面的方法

類中查詢相關(guān)信息

1、class 查看類名

格式: 實(shí)例.class

2、dict 查看全部屬性,返回屬性和屬性值鍵值對形式

格式:實(shí)例.dict

3、doc 查看對象文檔,即類中(用三個(gè)引號(hào)引起來的部分)

格式:類名.dict

4、bases 查看父類

格式:類名.base

5.mro 查看多繼承的情況下,子類調(diào)用父類方法時(shí),搜索順序

格式:子類名.mro 實(shí)例.class.mro

魔術(shù)方法:

str repr call init add

描述符

class Myattr():

def get(self,instance,owner):

print(“this is get”)

def set(self,instance,value):

print(“this is set”)

def delete(self,instance):

print(“this is delete”)

class Myclass():

attr=Myattr()

a=Myclass()

a.attr #訪問屬性來激活__get__方法

a.attr=1 #賦值來激活__set__方法

del a.attr #刪除來激活 __delete__方法

關(guān)于Python中的類是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


本文名稱:Python中的類是什么
標(biāo)題來源:http://weahome.cn/article/jpiged.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部