12-面向?qū)ο?homework

1.聲明一個電腦類:

屬性: 品牌腺毫、顏色骂澄、內(nèi)存大小
方法: 打游戲吓蘑、寫代碼、看視頻
a.創(chuàng)建電腦類的對象坟冲,然后通過對象點的方式獲取磨镶、修改、添加和刪除它的屬性
b.通過attr相關(guān)方法去獲取健提、修改琳猫、添加和刪除它的屬性

""" 易竹小居士 """

"""
1.聲明一個電腦類:  
屬性:品牌、顏色私痹、內(nèi)存大小  
方法:打游戲脐嫂、寫代碼、看視頻  

a.創(chuàng)建電腦類的對象紊遵,然后通過對象點的方式獲取账千、修改、添加和刪除它的屬性  
b.通過attr相關(guān)方法去獲取暗膜、修改匀奏、添加和刪除它的屬性   

"""

class Computer:
    """聲明一個電腦類"""
    def __init__(self, brand='', color='black', ram=0):
        self.brand = brand
        self.color = color
        self.ram = ram

    def play_game(self):
        print('打游戲')

    def write_code(self):
        print('寫代碼')

    def watch_tv(self):
        print('看電視')




if __name__ == '__main__':
    cp1 = Computer('lenovo', 'yellow', 4)
    """創(chuàng)建一個電腦對象"""
    print(cp1)

    # 獲取
    print(cp1.color)
    print(cp1.brand)
    print(cp1.ram)

    # 修改
    cp1.color = 'red'
    print(cp1.color)

    cp1.brand = 'mac'
    print(cp1.brand)

    cp1.ram = 2
    print(cp1.ram)


    # 添加
    cp1.listen = 'music'
    print(cp1.listen)

    # 刪除
    del cp1.ram
    #print(cp1.ram)  # 在打印就報錯:AttributeError: 'Computer' object has no attribute 'ram'



    # 通過attr獲取
    print(cp1.__getattribute__('color'))
    print(getattr(cp1, 'brand', '電腦品牌'))

    # 通過attr增加
    cp1.__setattr__('outline', 'rectangle')
    print(cp1.outline)  #得到rectangle
    setattr(cp1, 'outline', 'rectangle')
    print(cp1.outline)


    #通過attr改
    setattr(cp1, 'color', 'pink')
    print(cp1.color)   #得到pink

    cp1.__setattr__('brand', 'hp')
    print(cp1.brand)   #得到hp

    #通過attr刪除
    delattr(cp1, 'color')
    print(cp1.color)  #得到:AttributeError: 'Computer' object has no attribute 'color'

    cp1.__delattr__('color')
    print(cp1.color)   #得到:AttributeError: 'Computer' object has no attribute 'color'




后補:

""" 易竹小居士 """
"""
1.聲明一個電腦類:
屬性:品牌、顏色桦山、內(nèi)存大小
方法:打游戲攒射、寫代碼醋旦、看視頻
"""
class Computer:
    """電腦類"""
    def __init__(self, brand='', color='black', memory=0):
        self.brand = brand
        self.color = color
        self.memory = memory

    @staticmethod
    def play_game(game):
        print('打%s游戲' % game)

    @staticmethod
    def coding(code_type):
        print('寫%s程序' % code_type)

    @staticmethod
    def watch_video(video):
        print('在看%s' % video)

"""
2.聲明一個人的類和狗的類:
狗的屬性:名字恒水、顏色会放、年齡 狗的方法:叫喚
人的屬性:名字、年齡钉凌、狗 人的方法:遛狗
a.創(chuàng)建人的對象小明咧最,讓他擁有一條狗大黃,然后讓小明去遛大黃
"""
class Dog:
    """狗類"""
    def __init__(self, name='', color='', age=0):
        self.name = name
        self.color = color
        self.age = age

    def shout(self):
        print('%s:汪汪汪S瘛矢沿!' % self.name)


class Person:
    """人類"""
    def __init__(self, name='', age=0):
        self.name = name
        self.age = age
        # None來表示對象的零值
        self.dog = None

    def walk_dog(self):
        """遛狗"""
        if self.dog == None:
            print('沒??,遛自己吧!')
            return

        print('%s牽著%s在散步' % (self.name, self.dog.name))

"""
3.聲明一個矩形類:
屬性:長酸纲、寬 方法:計算周長和面積
a.創(chuàng)建不同的矩形捣鲸,并且打印其周長和面積
"""
class Rectangle:
    """矩形類"""
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def perimeter(self):
        """求周長"""
        return (self.length + self.width)*2

    def area(self):
        """求面積"""
        return self.length * self.width


"""
4.創(chuàng)建一個學生類:
屬性:姓名,年齡闽坡,學號 方法:答到栽惶,展示學生信息 
創(chuàng)建一個班級類:
屬性:學生,班級名 方法:添加學生疾嗅,刪除學生外厂,點名
"""
from random import randint

class Student:
    """學生類"""
    def __init__(self, name='', age=0):
        self.name = name
        self.age = age
        self.study_id = 'py1805'+str(randint(0, 50))

    def answer(self):
        print('%s,到代承!' % self.name)

    def show(self):
        print('姓名:%s 年齡:%d 學號:%s' % (self.name, self.age, self.study_id))


class Class:
    """班級類"""
    def __init__(self, name=''):
        self.name = name
        self.students = []

    def append_student(self, student=None):
        """添加學生"""
        self.students.append(student)

    def del_student(self, name):
        """刪除學生"""
        for student in self.students[:]:
            if student.name == name:
                self.students.remove(student)

    def call_names(self):
        """點名"""
        for student in self.students:
            # 點名
            print(student.name)
            # 答到
            student.answer()


"""
5.寫一個類汁蝶,封裝所有和數(shù)學運算相關(guān)的功能(包含常用功能和常用值,例如:pi,e等)
"""
class Math:
    """數(shù)學類"""
    pi = 3.1415926
    e = 2.718

    @staticmethod
    def sum(*number):
        """求和"""
        sum1 = 0
        for x in number:
            sum1 += x
        return sum1

    @classmethod
    def cricle_area(cls, radius):
        """求圓的面積"""
        return radius**2*cls.pi



if __name__ == '__main__':
    """第一題"""
    cm = Computer()
    cm.memory = 512
    cm.brand = '惠普'
    Computer.play_game('貪吃蛇')
    # 添加屬性
    # cm.price = 998
    setattr(cm, 'price', 998)
    print(cm.price)

    # 刪除屬性
    # del cm.color
    cm.__delattr__('price')

    # 修改屬性
    # cm.memory = 258
    cm.__setattr__('memory', 1024)

    """第二題"""
    p1 = Person('小明', 18)
    p1.dog = Dog('大黃', 'yellow', 3)
    p1.walk_dog()

    """第三題"""
    rect1 = Rectangle(10, 20)
    print(rect1.area(), rect1.perimeter())

    rect2 = Rectangle(100, 30)
    print(rect2.perimeter())

    """第四題"""
    stu1 = Student('張三', 20)
    stu2 = Student('aa', 18)
    stu3 = Student('bb', 30)

    class1 = Class('py1805')
    class1.append_student(stu1)
    class1.append_student(stu2)
    class1.append_student(stu3)
    class1.call_names()


    # 注意:如果函數(shù)的參數(shù)是對象(列表论悴、字典掖棉、類的對象),傳參的時候傳的是地址膀估,如果函數(shù)中需要對象的內(nèi)容進行修改啊片,
    #      傳參的時候傳對象的拷貝(如果是列表可以切片)
    def func1(list1):
        list1.append(10)
        print(list1)

    def func2(lista):
        lista.append(20)
        print(lista)

    list11 = [1, 2, 3, 4]
    func1(list11[:])
    func2(list11[:])
    print(list11)

    print(Math.sum(10, 2, 3))
    print(Math.cricle_area(3))
    print(Math.pi)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市玖像,隨后出現(xiàn)的幾起案子紫谷,更是在濱河造成了極大的恐慌,老刑警劉巖捐寥,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笤昨,死亡現(xiàn)場離奇詭異,居然都是意外死亡握恳,警方通過查閱死者的電腦和手機瞒窒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乡洼,“玉大人崇裁,你說我怎么就攤上這事匕坯。” “怎么了拔稳?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵葛峻,是天一觀的道長。 經(jīng)常有香客問我巴比,道長术奖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任轻绞,我火速辦了婚禮采记,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘政勃。我一直安慰自己唧龄,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布奸远。 她就那樣靜靜地躺著既棺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪然走。 梳的紋絲不亂的頭發(fā)上援制,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音芍瑞,去河邊找鬼晨仑。 笑死,一個胖子當著我的面吹牛拆檬,可吹牛的內(nèi)容都是我干的洪己。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼竟贯,長吁一口氣:“原來是場噩夢啊……” “哼答捕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起屑那,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拱镐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后持际,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沃琅,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年蜘欲,在試婚紗的時候發(fā)現(xiàn)自己被綠了益眉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖郭脂,靈堂內(nèi)的尸體忽然破棺而出年碘,到底是詐尸還是另有隱情,我是刑警寧澤展鸡,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布屿衅,位于F島的核電站,受9級特大地震影響娱颊,放射性物質(zhì)發(fā)生泄漏傲诵。R本人自食惡果不足惜凯砍,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一箱硕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悟衩,春花似錦剧罩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挑势,卻和暖如春镇防,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背潮饱。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工来氧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人香拉。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓啦扬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凫碌。 傳聞我的和親對象是個殘疾皇子扑毡,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,869評論 6 13
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,089評論 1 32
  • 記憶中從青春期開始,我的背就不是挺撥的盛险,經(jīng)常有熟悉的親戚朋友走過路過不忘敲打我一下瞄摊,提醒我直起來,可是無論我怎么提...
    xiaoyuxilili閱讀 605評論 1 2
  • 人類是群居動物嗎苦掘,如果一個人生活又會怎樣换帜。在工作中總會有我對人際關(guān)系產(chǎn)生厭惡,只想工作鸟蜡,下班膜赃,回家,什么人都不想接...
    summer夏天來了閱讀 198評論 0 0
  • 不要糾結(jié)別人怎么對待自己揉忘。關(guān)鍵是自己是否真誠地對待別人跳座。 每次接識不同的人端铛,唯恐自己被別人誤認為騙子。 所以疲眷,用最...
    石三英語閱讀 146評論 0 0