亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python Class:面向對象高級編程

發布時間:2020-06-24 00:11:54 來源:網絡 閱讀:888 作者:虎皮喵的喵 欄目:編程語言

一、Class添加新方法: MethodType

  1. 外掛類


class Animal(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def run(self):
        print 'Animal is run'

def set_color(self, color):
    self.color = color;
    print color


dog = Animal('Pity', 9)

cat = Animal('Miumiu', 9)


from types import MethodType
dog.set_color = MethodType(set_color, dog, Animal)

dog.set_color('yellow')

python Class:面向對象高級編程

print dog.color

python Class:面向對象高級編程

cat.set_color('white_yellow')

python Class:面向對象高級編程


由此可見,MethodType指定添加在dog對象中,而非Animal中


2.內嵌類

class Animal(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def run(self):
        print 'Animal is run'

def set_color(self, color):
    self.color = color;
    print color


dog = Animal('Pity', 9)

cat = Animal('Miumiu', 9)


from types import MethodType
Animal.set_color = MethodType(set_color, None, Animal)


dog.set_color('yellow')

python Class:面向對象高級編程

cat.set_color('white_yellow')
python Class:面向對象高級編程


格式圖:

python Class:面向對象高級編程




二、Class限制添加新元素:__slots__

  1. 普通的Class沒有限制添加元素

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


class Animal(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def run(self):
        print 'Animal is run'


dog = Animal('Pity', 9)


dog.color = 'yellow'  #dog實體添加了新元素color
print dog.color

python Class:面向對象高級編程


2.限制添加新元素:__slots__

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


class Animal(object):
    __slots__ = ('name', 'age')  #限制實體添加其他元素
    def __init__ (self, name, age):
        self.name = name
        self.age = age
    def run(self):
        print 'Animal is run'


dog = Animal('Pity', 9)
print dog.name

python Class:面向對象高級編程

dog.color = 'yellow'

python Class:面向對象高級編程


!!!但是!!!!!

對于繼承Animal的子類來講,這個方法無效,除非在子類中也添加__slots__

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


class Animal(object):
    __slots__ = ('name', 'age')
    def __init__ (self, name, age):
        self.name = name
        self.age = age
    def run(self):
        print 'Animal is run'


class Cat(Animal):   #添加繼承Animal的子類
    pass


cat = Cat('Miumiu', 9)
cat.color = 'white_yellow'
print cat.color

python Class:面向對象高級編程



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐市| 苏尼特左旗| 岱山县| 互助| 喀喇沁旗| 千阳县| 会昌县| 隆林| 溆浦县| 五原县| 内黄县| 炉霍县| 武清区| 浮山县| 获嘉县| 临湘市| 商水县| 民乐县| 师宗县| 拉萨市| 察隅县| 营山县| 潜山县| 阿荣旗| 霍城县| 弥勒县| 万载县| 财经| 南华县| 盐亭县| 灌云县| 翁牛特旗| 康定县| 肇源县| 晴隆县| 四平市| 崇州市| 古交市| 龙海市| 美姑县| 大竹县|