面向对象伊始

类的定义

面向对象:就是将生活中的对象抽象到程序中
生活中的对象,就得把生活中的思想抽象到程序中

  • 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())-->对象】
    newinit哪里来的?
    对象的由来——一切皆对象

#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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容