day14類

'''

類:就是擁有相同功能呢個相同屬性的對象集合

對象:累的實列(對象是具體的)

*變成方式
*面向過程編程(以算法為工具)
*面向對象編程(以類和對象為工具(生活化)
*\類:對用于相同功能放大和相同屬性(屬性的封裝
封裝效果:一個類中可以對多個功能進行封裝(多個函數(shù);封裝多個屬性
*累的聲明格式
*class類名(父類列表

  • 累的內容

說明

class生門類的關鍵字
類名標識符.不能是哦關鍵字,駝峰是命名(第一個單詞字母小寫其他的單詞字母都是大寫
(父類列表):這個比分可以省.這個是集成語法
累的內容:光開累的方法和累的屬性
類中的方法
方法(就是聲明在累的函數(shù)
1.對象方法:通過對象調用 對象.函數(shù)名
直接寫在累的方法,自帶一個self參數(shù)

2.類方法
3,靜態(tài)方法
構造方法:類型名()--->創(chuàng)建類對應的對象
創(chuàng)建累的時候,系統(tǒng)會默認給我們創(chuàng)建這個類對應的構造方法

class Person:
    def eat(self):
        print('人吃飯')


p1 =Person() #創(chuàng)建Person類的對象,并且將對象的地址存到p1中
p2 =Person()
p3 = p2
print(id(p1),id(p2),id(p3))

調用對象方法

通過對象調用對象方法,默認參數(shù)

一個雷可以有多個對象

構造方法:系統(tǒng)自動創(chuàng)建的,方法名和類名一樣,用來創(chuàng)建對象

2.init: init方法的功能是用來做初始化的,和添加對象屬性的

當我們通過構造方法去穿件對象的時候,系統(tǒng)會自動條用init方法

class Dog:
def init(self):
print('init')

創(chuàng)建對象過程:調用構造方法在內存中開辟空間創(chuàng)建一個對象,然后用用新建的這個對象去調用init方法

類中的內容:屬性和方法
1屬性:(保存值得)
a.對象的屬性:不同的對象,對應的值可能不一樣,這樣的屬性是對象屬性,
類的字段:所有的對象對應的值是一樣的
對象屬性
類中的對象屬性是聲明在init方法中的,并且聲明格式是:self,屬性名 = 初值
2.方法:保存功能的
對象方法
類方法
靜態(tài)方法
class Student:
    def __init__(self):
        self.name ='余婷'
        self.age = 0
        self.id -'001'
stu1 = Student()
print(stu1.mame,stu1.age,stu1.id)
stu1.mame ='張三'

class Rectangle:
    def __init__(self,width,tall):
        self.width=width
        # self.tall=tall寫一個矩形,有長和寬兩個功能,分別是求周長面積
        # 練習2:寫一個班級類,編輯里面有多個學生的成績(一門),可以獲取編輯成績中的最高分

python是童泰語言,Python中類的對象的屬性可以進行增刪的操作

class Person:
    def __init__(self):
        self.name ='張三'
        self.age = 18
        self.height = 160
    p1 = Person()
    print(p1.mame)

對象方法:

直接聲明在類的函數(shù)默認是對象方法,有一個默認參數(shù)self

對象方法要通過對象來用

對象方法中默認參數(shù)self,不需要傳參,以為在調用這個方法的時候系統(tǒng)會自動將當前傳給self

那個對象調用的方法,self就是向誰

class Circle:
    def __init__(self,ranius1):
        self.ranius = ranius1
    def area(self):
        print('求圓的面積')

class  Circle:
    def __init__ (self,width,length):
        self.width=width
        self.length=length
        print('%d長乘以寬:'%(width*length))
class Studentclass
    def __init__(self,result,class_name,subjects):
        self.subjects=subjects
        self.class_name=class_name
        self.result=result

# 類的屬性叫類的字段
# 類的字段就是聲明在累的里面,方法的外面的變量
#什么樣的屬性聲明成類的字段
#屬于類的,對于這個類的所有的對象來說其值是共享的
    通過類來使用:類.字段
    class Person:
       # 這個number就是類的字段
        number=90
    print(Person.number)

寫一個類,用一個屬性來保存這個類的對象的個數(shù)

class Ball:
    count = 0
    def __init__(self):
        Ball.count+=1
        ball1 = Ball()
        print(Person.number)

作業(yè)

向對象作業(yè)1:

# 1.聲明 個電腦類: 屬性:品牌砰左、顏 、內存 法:打游戲、寫代碼、看視頻

# a.創(chuàng)建電腦類的對象峡懈,然后通過對象點的 式獲取妒牙、修改、添加和刪除它的屬性

b.通過attr相關 法去獲取五鲫、修改屡江、添加和刪除它的屬性

class Computer:
    def __init__(self,brand,color,memory):
        self.brand=brand#品牌
        self.color=color#顏色
        self.memory=memory#內存

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

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

    def watching_TV(self):
         print('看視頻')

c1 = Computer('蘋果','white','8GB')
c1.play_the_game()
c1.write_the_code()
c1.watching_TV()

#獲取
print(c1.brand,c1.memory,c1.color)
print(getattr(c1,'brand'))
print(c1.__getattribute__('brand'))
#修改
c1.brand = '華為'
print(c1.brand)
setattr(c1,'memory',128)
print(c1.memory)
c1.__setattr__('color','har')
print(c1.color)
#添加
c1.sex= 'nanxxxxzxxxx'
print (c1.sex)
setattr(c1,'The_keyboard','鍵盤')
print(c1.The_keyboard)
c1.__setattr__('The_mouse','鼠標')
print(c1.The_mouse)
# #刪除
# del c1.brand
# delattr(c1, 'memory')

print(hasattr(Computer,'brand'))

# 2.聲明 個 的類和狗的類:

# 狗的屬性:名字芭概、顏 、 齡 狗的 法:叫喚

人的屬性:名字惩嘉、齡罢洲、狗 的 法:遛狗

a.創(chuàng)建 的對象 明,讓他擁有 條狗 文黎,然后讓 明去遛

class People:
    def __init__(self,name,age,dog,):
        self.age=age
        self.name=name
        self.dog=dog
    def Walk_the_dog(self):
        print('名字:%s 年齡:%d' %(self.name,self.age))
        print('%s正在遛%s' % (self.name,self.dog.老污龜))
        self.dog.call()


class Dog:
    def __init__(self,老污龜,color,age):
        self.老污龜=老污龜
        self.color=color
        self.age=age
    def call(self):
        print('%s汪汪汪' %self.老污龜)

dog1 = Dog('老污龜','green',12)


person1 = People('小明',23,dog1)
person1.dog.call()
person1.Walk_the_dog()

# # 3.聲明 個矩形類:
# # 屬性: 惹苗、寬  法:計算周 和 積 a.創(chuàng)建 同的矩形,并且打印其周 和 積
class Rectangular:
    def __init__(self,long,wide):
        self.long=long
        self.wide=wide
    def area(self):
        return self.long * self.wide
    def perimeter(self):
        return (self.long + self.wide) * 2
        # print('周長是%s面積是%s:%d'%(self.long*self.wide))
r1 = Rectangular(10,20)
print(r1.area())
r2 = Rectangular(10,20)
print(r2.perimeter())

# 4.創(chuàng)建 個學 類:

# 屬性:姓名耸峭, 齡桩蓉,學號 法:答到,展示學 信息 創(chuàng)建 個班級類:

屬性:學 劳闹,班級名 法:添加學 院究,刪除學 洽瞬,點名

class Student(object):
    def __init__(self,name,age,id):
        self.name = name
        self.age = age
        self.id = id

    def amount_to(self):
        print('答到')

    def select_info(self):
        print('姓名:%s 年紀:%d 學號:%d' % (self.name,self.age,self.id))

class Class_student(object):
    student_info = {}
    def __init__(self,student,class_name):
        self.student = student
        self.class_name = class_name

    def add_student(self):
        self.student_info[self.student.id] = [self.student.name,self.student.age]
        print('添加成功')

    def del_student(self):
        self.student_info.pop(self.student.id)
        print('刪除成功')

    def sign_in(self):
        if self.student.id in self.student_info:
            print("%s到了" % self.student.name)
        else:
            print('%s還沒到' % self.student.name)

if __name__ == '__main__':
    stu1 = Student('txf',12,1)
    stu1.amount_to()
    stu1.select_info()

    class_stu = Class_student(stu1,'python1806')
    class_stu.add_student()
    class_stu.sign_in()
    class_stu.del_student()
    class_stu.sign_in()


# 5.寫 個類,封裝所有和數(shù)學運算相關的功能(包含常 功能和常 值业汰, 如:pi,e等)

class Math(object):
    pi = 3.14
    e = 10
    def rectangle_area(self,width,height):
        return width*height

    def circle_area(self,radius):
        return self.pi * radius**2

    def power(self,x):
        return self.e**x

    def add(self,x,y):
        return x+y

if __name__ == '__main__':
    m = Math()
    print(m.pi)
    print('矩形面積是:%d' % m.rectangle_area(10,20))
    print('圓的面積:%d' % (m.circle_area(3)))
    print('10的%d次方是:%d' % (3,m.power(3)))
    print('3+4等于%d' % m.add(3,4))

結果

D:\Users\Administrator\PycharmProjects1806\類和對象\venv\Scripts\python.exe D:/Users/Administrator/PycharmProjects1806/類和對象/練習.py
打游戲
寫代碼
看視頻
蘋果 8GB white
蘋果
蘋果
華為
128
har
nanxxxxzxxxx
鍵盤
鼠標
False
老污龜汪汪汪
名字:小明 年齡:23
小明正在遛老污龜
老污龜汪汪汪
200
60
答到
姓名:txf 年紀:12 學號:1
添加成功
txf到了
刪除成功
txf還沒到
3.14
矩形面積是:200
圓的面積:28
10的3次方是:1000
3+4等于7

Process finished with exit code 0
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末伙窃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子样漆,更是在濱河造成了極大的恐慌为障,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氛濒,死亡現(xiàn)場離奇詭異产场,居然都是意外死亡,警方通過查閱死者的電腦和手機舞竿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窿冯,“玉大人骗奖,你說我怎么就攤上這事⌒汛” “怎么了执桌?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芜赌。 經(jīng)常有香客問我仰挣,道長,這世上最難降的妖魔是什么缠沈? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任膘壶,我火速辦了婚禮,結果婚禮上洲愤,老公的妹妹穿的比我還像新娘颓芭。我一直安慰自己,他們只是感情好柬赐,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布亡问。 她就那樣靜靜地躺著,像睡著了一般肛宋。 火紅的嫁衣襯著肌膚如雪州藕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天酝陈,我揣著相機與錄音床玻,去河邊找鬼。 笑死后添,一個胖子當著我的面吹牛笨枯,可吹牛的內容都是我干的薪丁。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼馅精,長吁一口氣:“原來是場噩夢啊……” “哼严嗜!你這毒婦竟也來了?” 一聲冷哼從身側響起洲敢,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤漫玄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后压彭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睦优,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年壮不,在試婚紗的時候發(fā)現(xiàn)自己被綠了汗盘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡询一,死狀恐怖隐孽,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情健蕊,我是刑警寧澤菱阵,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站缩功,受9級特大地震影響晴及,放射性物質發(fā)生泄漏。R本人自食惡果不足惜嫡锌,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一虑稼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧世舰,春花似錦动雹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至震蒋,卻和暖如春茸塞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背查剖。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工钾虐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笋庄。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓效扫,卻偏偏與公主長得像倔监,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子菌仁,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容