类的定义
面向对象:就是将生活中的对象抽象到程序中
生活中的对象,就得把生活中的思想抽象到程序中
-
1.面向对象:类和对象、类的方法的使用
-
2.面向对象的第一个特征:封装
-
3.面向对象第二个特征:继承
-
4.面向对象第三个特征:多态
# 定义一个用户类
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 + "去开房了...")
def play_game(self):
print(self.nickname + "去玩耍了....")
# 创建类型对应的实际存在的物体:创建对象
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()
对象的创建过程
-
1对象的创建,通常情况先调用new()函数,来创建一个对象【*基本不用】再调用__init()函数,来初始化对象中的数据【****常用】
-
2.一切皆对象
所以,正常情况下,创建一个类,需要显示的指定,这个类型是个对象 -
3.了解:什么是对象【类 VS 对象】
对象的创建过程【类--(new() init())-->对象】
new和init哪里来的?
对象的由来——一切皆对象
#class Users:
class Users(object):
def __new__(cls, *args):# new创建
print("__new__()函数执行了...")
return super(Users, cls).__new__(cls)
def __init__(self, name):# init: initalization 初始化
print("__init__()函数执行了...")
self.name = name
u = Users("tom")
案例
#定义一个类型
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];婚姻类型:%s;"%(self.name,\
self.sex,self.age,self.consort,self.type)
#定义一个结婚的方法
def marry(self,person):
if self.sex == "男":
self.type = "娶妻"
else:
self.type="人赘"
self.consort = person
person.consort = self.name
person.type = self.type
#创建对象
jack = Person("杰克","男","23")
rose = Person("露丝","女","22")
jack.marry(rose)
print(jack)
#rose.marry(jack)
#print(rose)
网友评论