bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

pythonClass:面向對象高級編程

一、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:面向對象高級編程

分享文章:pythonClass:面向對象高級編程
標題路徑:http://vcdvsql.cn/article36/gjihsg.html

成都網站建設公司_創新互聯,為您提供網站排名電子商務網站制作建站公司微信小程序網站策劃

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設