day-14-類(lèi)和對(duì)象

""""""
"""
1.面向?qū)ο缶幊?br> 2.函數(shù)式編程
3.面向?qū)ο缶幊?br> """
n=100
sum1=0
for x in range(n+1):
sum1+=x
print(sum1)

def add_student():
pass
class student_manager:
pass

value = input('數(shù)字')
if value=='1':
add_student()

""""""
"""

1.什么是類(lèi):---->類(lèi)是擁有相同屬性和相同功能的對(duì)象的集合(類(lèi)是抽象的)

對(duì)象:————>對(duì)象就是類(lèi)的實(shí)例(對(duì)象是具體的)

2.類(lèi)的聲明

格式:
class 類(lèi)名(父類(lèi)):
類(lèi)的說(shuō)明文檔
類(lèi)的內(nèi)容
說(shuō)明:
class---->是Python中聲明類(lèi)的關(guān)鍵字
類(lèi)名----->標(biāo)識(shí)符,不能是關(guān)鍵字熊杨;類(lèi)名使用駝峰式命名渺蒿。首字母大寫(xiě)
用駝峰式命名:如果一個(gè)名字由多個(gè)單子組成,第一個(gè)單詞首字母小寫(xiě)宣肚,后面每個(gè)單詞首字母都大寫(xiě)
userName
PEP8 命名:如果一個(gè)名字由多個(gè)單子組成寂殉,每個(gè)單詞都小寫(xiě)多個(gè)單詞有下劃線隔開(kāi)
user_name
(父類(lèi))-->繼承語(yǔ)法:讓聲明的類(lèi)繼承括號(hào)的父類(lèi),這個(gè)結(jié)構(gòu)可以省略,讓當(dāng)前的類(lèi)繼承Python的基類(lèi):object
:固定結(jié)構(gòu)
類(lèi)的說(shuō)明文檔--->對(duì)類(lèi)進(jìn)行說(shuō)明
類(lèi)的內(nèi)容-->包含屬性(變量)和方法(函數(shù))
方法:聲明類(lèi)的函數(shù)

"""
class Person:
def eat(self):
print('吃飯')
def sleep(self):
print('睡覺(jué)')

"""

3.對(duì)象的聲明

對(duì)象名=類(lèi)名()

對(duì)象名->變量名
類(lèi)名->必須是聲明過(guò)的類(lèi)(系統(tǒng)聲明的也行)
"""
p1=Person()
p2=Person()

""""""
"""
類(lèi)的內(nèi)容包含屬性和方法漆魔,分為:對(duì)象方法,類(lèi)方法和靜態(tài)方法
對(duì)象方法:直接聲明在類(lèi)中的函數(shù)却音,對(duì)象方法都有默認(rèn)參數(shù)self改抡,需要使用對(duì)象來(lái)調(diào)用
對(duì)象方法的調(diào)用:對(duì)象.方法名()。調(diào)用對(duì)象方法時(shí)不需要給默認(rèn)值self傳參系統(tǒng)會(huì)自動(dòng)將當(dāng)前對(duì)象傳遞給self系瓢。
self:誰(shuí)調(diào)用當(dāng)前的對(duì)象方法阿纤,self就指向誰(shuí).self就是當(dāng)前類(lèi)的對(duì)象,類(lèi)的對(duì)象能做的self都能做夷陋。

類(lèi)方法:
靜態(tài)方法:
"""

聲明類(lèi)

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

聲明對(duì)象

p1=Person()
print('p1',p1)
p1.eat('小胖')
print(p1)
""""""
"""
1.構(gòu)造方法:
構(gòu)造方法就是函數(shù)名和類(lèi)名一樣的方法欠拾。作用是用來(lái)創(chuàng)建對(duì)象的。
聲明類(lèi)的時(shí)候骗绕。系統(tǒng)會(huì)自動(dòng)為類(lèi)創(chuàng)建對(duì)應(yīng)的構(gòu)造方法
創(chuàng)建對(duì)象的過(guò)程:調(diào)用構(gòu)造方法在內(nèi)存去開(kāi)辟空間創(chuàng)建對(duì)象藐窄,并且自動(dòng)調(diào)用init方法對(duì)這個(gè)對(duì)象初始化
最后將創(chuàng)建好的對(duì)象地址返回

2.init方法
對(duì)象方法
不需要手動(dòng)調(diào)用,創(chuàng)建完對(duì)象會(huì)被自動(dòng)調(diào)用
"""
class Dog:
def init(self):
print('init方法')

dog1=Dog()

"""
3.帶參其他參數(shù)的init方法
init方法的參數(shù)要通過(guò)構(gòu)造方法來(lái)傳酬土。

"""

class Person:
def init(self,name='',age=0):
print(name,age)
p1=Person('小胖',18)
p2=Person('小明')
p3=Person(age=1)
""""""
"""
類(lèi)的內(nèi)容包含屬性和方法荆忍,屬性又分為對(duì)象的屬性和類(lèi)的字段
屬性:在類(lèi)中去保存數(shù)據(jù)的變量。
對(duì)象屬性:屬性的值會(huì)因?yàn)閷?duì)象的不同而不同撤缴。這種屬性需要聲明對(duì)象屬性刹枉。如:人的名字,人的年齡等
對(duì)象的屬性要通過(guò)對(duì)象來(lái)使用

1.對(duì)象屬性的聲明(重點(diǎn))
a.必須聲明在innit方法中
b.聲明格式: self.屬性=初值

2.使用對(duì)象屬性:對(duì)象.屬性
"""

聲明人類(lèi)屈呕,要求名字微宝,年齡,性別凉袱,屬性

class Person:
def init(self):
self.name='小胖'
self.age=18
self.sex='男'
p1=Person()
print(p1.name)
'''

'''

聲明一個(gè)人類(lèi)芥吟,要有名字,年齡专甩,性別三個(gè)屬性钟鸵,要求創(chuàng)建不同對(duì)象的時(shí)候就可以直接確定不同的屬性值

class Person2:
def init(self, name1, age1, sex1):
self.name = name1
self.age = age1
self.sex = sex1

p1 = Person2('小鄂', 20 , '女')
print(p1)
print(p1.name)

class Person3:
def init(self, name1, age1=0, sex1='女'):
self.name = name1
self.age = age1
self.sex = sex1
self.id = '007'

p3 = Person3('老鄂')
print(p3.name)
p3.name = '大鄂' #可以修改屬性的值
print(p3.name)

python中所有的數(shù)據(jù)都是對(duì)象,所有的變量

import copy
import random

class Student:
def init(self, name, age, score):
[圖片上傳失敗...(image-5c8c5b-1539763110271)]

self.name = name
self.age = age
self.score = score

# 定制當(dāng)前類(lèi)對(duì)象的打印格式
def __str__(self):              #打印類(lèi)的對(duì)象不是打印地址值涤躲,就用這個(gè)函數(shù)
    # return '想要打印的內(nèi)容'          #打印的時(shí)候把想要打印的內(nèi)容作為返回值
    return  str(self.__dict__)

1.將對(duì)想給別的變量賦值

stu1 = Student('xiao', 18, 89)
stu2 = stu1 #只有一個(gè)對(duì)象棺耍,即stu1,stu2是存儲(chǔ)了和stu1一樣的Student('xiao', 18, 89)的地址
stu3 = copy.copy(stu1) #產(chǎn)生新的對(duì)象种樱,將新的地址賦值

[圖片上傳失敗...(image-8a592e-1539763110271)]

stu1.name = 'san'
print([圖片上傳失敗...(image-8c7226-1539763110271)]

stu2.name) #是san蒙袍,因?yàn)閟tu1的值改變了俊卤,但是兩者存儲(chǔ)的地址還是一樣的
print([圖片上傳失敗...(image-7f69ee-1539763110271)]

stu3.name) #是xiao,因?yàn)閏opy是淺拷貝,拷貝的是地址值

2.將對(duì)象作為列表的元素

student = [Student('小明', 23, 87), stu3, Student('小工', 22, 77)]

找到列表students中成績(jī)最好的學(xué)生的名字

max1 = student[0].score
name = student[0].name
for stu in student:
if stu.score > max1:
max1 = stu.score
name = [圖片上傳失敗...(image-a868ff-1539763110271)]

stu.name
print(name, max1)

排序:sort的使用條件害幅,序列要是相同的類(lèi)型消恍,并且元素支持大于比較

student.sort(key=lambda item:item.age) #后邊是返回值
for stu in student:
print(stu)

max1 = max(student, key=lambda item:item.score)
print('max:', max1) #返回最大年齡的學(xué)生的整體信息max: {'name': 'xiao', 'age': 18, 'score': 89}

1.根據(jù)姓名查找指定學(xué)生的信息。2.根據(jù)姓名修改指定學(xué)生的年齡

name = input('請(qǐng)輸入學(xué)生的名字:')
for stu in student:
if [圖片上傳失敗...(image-e20b91-1539763110270)]

stu.name == name:
stu.age = random.randint(10,20)
print(stu)
""""""
"""
1.類(lèi)的字段:
屬性:對(duì)象屬性以现,類(lèi)的字段
類(lèi)的字段:聲明在類(lèi)里面狠怨,函數(shù)外面的變量就是類(lèi)的字段.使用要通過(guò)類(lèi)來(lái)使用:類(lèi).字段
2.slots:用來(lái)約束當(dāng)前類(lèi)的屬性有哪些

"""
class Dog:
# num是類(lèi)的字段
num=10
def init(self,color,name,type):
self.color=color
self.name=name
self.type=type
Dog.num=100
print(Dog.num)

dog1=Dog('黃色','大黃','土狗')
print(dog1)

class Person:
"""人類(lèi)"""
# 類(lèi)的字段
num = 61

# 對(duì)象屬性
def __init__(self, name, age, sex):
    self.name = name
    self.age = age
    self.sex = sex

# 對(duì)象方法
def run(self):
    print('%s在跑' % self.name)

def __str__(self):
    return '<<'+self.__class__.__module__+'.'+self.__class__.__name__+\
            'object at ' + hex(id(self))+'>>'

p1 = Person('小明', 18, '男')

1.name

"""
類(lèi).name --> 獲取當(dāng)前類(lèi)的名字
"""
print(Person.name, type(Person.name))

2.doc

"""
類(lèi).doc --> 獲取類(lèi)的說(shuō)明文檔
"""
print(Person.doc)
print(int.doc)
print(dict.doc)

3.class

"""
對(duì)象.class -> 獲取對(duì)象的類(lèi), 類(lèi)能做的事情,他都可以做
"""
my_class = p1.class
p2 = Person('小花', 10, '女')
p2 = my_class('小花', 10, '女')
print(p2.name)

print(Person.num)
print(my_class.num)

4.dict

"""
類(lèi).dict --> 獲取當(dāng)前類(lèi)的所有類(lèi)的字段和其對(duì)應(yīng)的值邑遏,以字典的形式返回(了解)
對(duì)象.dict --> 獲取當(dāng)前對(duì)象所有的屬性和其對(duì)應(yīng)的值佣赖,以字典的形式返回

"""
print(Person.dict)
print(p1.dict)

5.module

"""
類(lèi).module -> 獲取當(dāng)前類(lèi)所在的模塊名
"""
print(Person.module)

from datetime import datetime
print(datetime.module)

6.bases

"""
類(lèi).bases -> 獲取當(dāng)前類(lèi)的父類(lèi), 返回的是一個(gè)元祖,元祖的元素是類(lèi)
"""
print(Person.bases)

print(p1)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末记盒,一起剝皮案震驚了整個(gè)濱河市憎蛤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纪吮,老刑警劉巖俩檬,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異彬碱,居然都是意外死亡豆胸,警方通過(guò)查閱死者的電腦和手機(jī)奥洼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)巷疼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人灵奖,你說(shuō)我怎么就攤上這事嚼沿。” “怎么了瓷患?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵骡尽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我擅编,道長(zhǎng)攀细,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任爱态,我火速辦了婚禮谭贪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锦担。我一直安慰自己俭识,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布洞渔。 她就那樣靜靜地躺著套媚,像睡著了一般缚态。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上堤瘤,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天玫芦,我揣著相機(jī)與錄音,去河邊找鬼本辐。 笑死姨俩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的师郑。 我是一名探鬼主播环葵,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宝冕!你這毒婦竟也來(lái)了张遭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤地梨,失蹤者是張志新(化名)和其女友劉穎菊卷,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體宝剖,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洁闰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了万细。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扑眉。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赖钞,靈堂內(nèi)的尸體忽然破棺而出腰素,到底是詐尸還是另有隱情,我是刑警寧澤雪营,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布弓千,位于F島的核電站,受9級(jí)特大地震影響献起,放射性物質(zhì)發(fā)生泄漏洋访。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一谴餐、第九天 我趴在偏房一處隱蔽的房頂上張望姻政。 院中可真熱鬧,春花似錦总寒、人聲如沸扶歪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)善镰。三九已至妹萨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炫欺,已是汗流浹背乎完。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留品洛,地道東北人树姨。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像桥状,于是被迫代替她去往敵國(guó)和親帽揪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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