類(lèi)的定義
面向?qū)ο螅壕褪菍⑸钪械膶?duì)象抽象到程序中
生活中的對(duì)象诈闺,就得把生活中的思想抽象到程序中
1.面向?qū)ο螅侯?lèi)和對(duì)象尖奔、類(lèi)的方法的使用
2.面向?qū)ο蟮牡谝粋€(gè)特征:封裝
3.面向?qū)ο蟮诙€(gè)特征:繼承
4.面向?qū)ο蟮谌齻€(gè)特征:多態(tài)
# 定義一個(gè)用戶(hù)類(lèi)
class Users:
def __init__(self,username, password, nickname):
self.username = username
self.password = password
self.nickname = nickname
def eat(self):
print(self.nickname + "在吃飯")
def sleep(self):
print(self.nickname + "去開(kāi)房了...")
def play_game(self):
print(self.nickname + "去玩耍了....")
# 創(chuàng)建類(lèi)型對(duì)應(yīng)的實(shí)際存在的物體:創(chuàng)建對(duì)象
u1 = Users("admin", "admin", "old_wang")
print(type(u1))
print(u1.username, u1.password, u1.nickname)
u1.eat()
u1.sleep()
u1.play_game()
u2 = Users("manager", "manager", "old_li")
print(u2.username, u2.password, u2.nickname)
u2.eat()
u2.sleep()
u2.play_game()
對(duì)象的創(chuàng)建過(guò)程
1對(duì)象的創(chuàng)建粹胯,通常情況先調(diào)用new()函數(shù),來(lái)創(chuàng)建一個(gè)對(duì)象【*基本不用】再調(diào)用__init()函數(shù),來(lái)初始化對(duì)象中的數(shù)據(jù)【****常用】
2.一切皆對(duì)象
所以巢寡,正常情況下,創(chuàng)建一個(gè)類(lèi)椰苟,需要顯示的指定抑月,這個(gè)類(lèi)型是個(gè)對(duì)象3.了解:什么是對(duì)象【類(lèi) VS 對(duì)象】
對(duì)象的創(chuàng)建過(guò)程【類(lèi)--(new() init())-->對(duì)象】
new和init哪里來(lái)的?
對(duì)象的由來(lái)——一切皆對(duì)象
#class Users:
class Users(object):
def __new__(cls, *args):# new創(chuàng)建
print("__new__()函數(shù)執(zhí)行了...")
return super(Users, cls).__new__(cls)
def __init__(self, name):# init: initalization 初始化
print("__init__()函數(shù)執(zhí)行了...")
self.name = name
u = Users("tom")
案例
#定義一個(gè)類(lèi)型
class Person(object):
def __init__(self,name,sex,age):
self.name = name
self.sex = sex
self.age = age
self.consort = None #
self.type = None #娶妻舆蝴? 入贅谦絮?
def __str__(self):
return "姓名:%s菱皆;性別:%s;年齡:%s挨稿;配偶:[%s]仇轻;婚姻類(lèi)型:%s;"%(self.name,\
self.sex,self.age,self.consort,self.type)
#定義一個(gè)結(jié)婚的方法
def marry(self,person):
if self.sex == "男":
self.type = "娶妻"
else:
self.type="人贅"
self.consort = person
person.consort = self.name
person.type = self.type
#創(chuàng)建對(duì)象
jack = Person("杰克","男","23")
rose = Person("露絲","女","22")
jack.marry(rose)
print(jack)
#rose.marry(jack)
#print(rose)