初识面向对象

. .     2022-10-01     629

关键词:

面向对象编程 是一种思想
对象就是具体的拥有准确属性值的一些变量
类:一类具有相同属性和方法的事物

 

类的定义 class关键字 类名的首字母大写
类中直接定义属性:静态属性(变量) 和动态属性(函数)
类名的两个作用:属性引用实例化对象
类和属性的操作:类名.属性名 类名.__dict__[‘属性名‘](不能修改)

技术分享图片
class Person:  # 类名有两个作用
    country = ‘中国‘  # 静态属性、数据属性
    def __init__(self,life_value,aggr,name,job):  # 初始化方法
        self.lv = life_value  # 属性,对象属性
        self.aggr = aggr
        self.name = name
        self.job = job
    def walk(self):  # 动态属性、函数属性、方法
        print(‘%s is walking‘%self.name)
技术分享图片

属性引用

技术分享图片
print(Person.walk)
# print(Person.walk())  # 报错 少参数
print(Person.__dict__)
print(Person.__dict__[‘country‘])  # 中国
# Person.__dict__[‘country‘] = ‘印度‘  # 报错 不能改变
print(Person.country)  # 中国 静态属性的查看
Person.role = ‘人‘  # 添加一个新静态属性
print(Person.role)  # 人
del Person.role  # 删除一个静态属性
Person.country = ‘印度‘  # 修改一个静态属性
print(Person.country)  # 印度
技术分享图片

实例化对象

实例化:从一个类中创造一个具体的对象的过程

print(callable(Person))  # True
p = Person()
print(p)  # <__main__.Person object at 0x00000000028CD198> Person的对象

实例化——类名(参数)
构造方法:造对象
初始化:给这个对象添加一些属性 __init__
返回了一个初始化之后的对象
如何让对象拥有具体的属性
__init__方法:初始化方法,可以没有,给对象添加一些必要的基础属性
self的含义:就是这个对象本身

技术分享图片
p = Person(1000,2,‘金老板‘,‘boss‘)
print(p.lv)  # 1000
print(p.aggr)  # 2
print(p.name)  # 金老板
print(p.job)  # boss
print(p.__dict__)  # {‘lv‘: 1000, ‘aggr‘: 2, ‘name‘: ‘金老板‘, ‘job‘: ‘boss‘}
print(p.__dict__[‘lv‘])  # 1000
p.__dict__[‘lv‘] = 998  # 对象名.__dict__中的属性值可以被修改
print(p.__dict__[‘lv‘],p.lv)  # 998 998
p.__dict__[‘sex‘] = ‘ladyboy‘  # 对象名.__dict__中的属性值可以增加
print(p.sex)  # ladyboy
p.__dict__.pop(‘sex‘)  # 对象名.__dict__中的属性值可以被删除

p.sex = ‘ladyboy‘  # 添加一个属性
print(p.sex)
p.sex = ‘girl‘  # 属性的修改
del p.sex  # 删除一个属性
# 对象和属性的操作:对象名.属性名 对象名.__dict__[‘属性名‘]

# Person.walk(p)  # 金老板 is walking
p.walk()  # Person.walk(p)
技术分享图片

 

面向对象交互

简单的人狗大战

技术分享图片
class Person:
    def __init__(self,life_value,aggr,name,job):
        self.name = name
        self.aggressive = aggr
        self.life = life_value
        self.job = job
    def attack(self,dog_obj):
        print(‘%s 攻击了 %s‘%(self.name,dog_obj.name))
        dog_obj.life = dog_obj.life - self.aggressive



class Dog:
    def __init__(self,life_value,aggr,name,kind):
        self.life = life_value
        self.aggressive = aggr
        self.name = name
        self.kind = kind
    def bite(self,person):
        print(‘%s 攻击了 %s‘%(self.name,person.name))
        person.life = person.life - self.aggressive

dog = Dog(1000,100,‘铁蛋‘,‘土狗‘)
boss_gold = Person(100,2,‘太黑‘,‘old_driver‘)
boss_gold.attack(dog)
print(dog.life)
dog.bite(boss_gold)
print(boss_gold.life)











第一小节初识面向对象(代码片段)

阅读目录楔子面向过程vs面向对象初识面向对象  类的相关知识  对象的相关知识  对象之间的交互  类命名空间与对象、实例的命名空间  类的组合用法  初识面向对象小结面向对象的三大特性  继承  多态... 查看详情

面向对象---初识对象

<!doctypehtml><htmllang="en"><head> <metacharset="UTF-8"> <title>面向对象---初识对象</title> <scripttype="text/javascript"> /* *表达一个人的完整信息 */ /*第一种,三个变量之间没有必然的联系----- 查看详情

初识javascriptoop(js面向对象)

初识JavaScriptOOP(js面向对象)Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。一、生成实例对象的原始模式... 查看详情

初识面向对象

一、面向对象&面向过程1、面向过程(流水线式思维):优点:程序复杂度较低,依据执行步骤顺序编写代码即可缺点:代码复用性差,前后逻辑耦合度要高应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git... 查看详情

面向对象思想初识

面向对象思想概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的... 查看详情

面向对象——初识对象

一、类的相关知识1)初识类声明deffunctionName(args):‘函数文档字符串‘函数体‘‘‘class类名:‘类的文档字符串‘类体‘‘‘#我们创建一个类classData:pass声明类classPerson:#定义一个人类role=‘person‘#人的角色属性都是人defwalk(self):#... 查看详情

java基础——初识面向对象

 面向对象面向过程&面向对象面向过程思想步骤请简单:第一步做什么,第一步做什么面向过程适合处理一些较为简单的东西面向对象思想物以类聚,分类的思维模式,思考的问题首先会解决问题需要哪些分裂,然后对这... 查看详情

面向对象初识

面向过程编程--函数--实现人狗大战defperson(*args):defattack(dog):print(‘%s打了%s‘%(dic[‘name‘],dog[‘name‘]))dic={‘name‘:args[0],‘sex‘:args[1],‘aggr‘:args[2],‘blood‘:args[3],‘attack‘:attack}#attack方法----放在字典里面returndic 查看详情

面向对象思想初识概述

概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。... 查看详情

javascript对象及初识面向对象

在JavaScript中,对象是拥有属性和方法的数据,属性是与对象相关的值,方法是能够在对象上执行的动作。JavaScript是通过一种叫做原型的方式来实现面向对象编程的。(面向对象仅仅是一个概念或者编程思想,它不依赖于某个语... 查看详情

java学习·初识面向对象基础一

面向对象基础1.1面向过程与面向对象的区别面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计。但二者并不是对立的,在解决复杂问题... 查看详情

初识面向对象(代码片段)

        面向对象VS函数式编程VS面向对象      面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考... 查看详情

初识面向对象

属性引用:类名和属性classPerson:  定义一个人类  role=‘person‘     人的角色属性  defwalk(self):    走路的一个方法    print(‘personiswalking‘)print(Person.role) 查看人的role属性print(Person.walk) ... 查看详情

初识面向对象

面向对象编程是一种思想对象就是具体的拥有准确属性值的一些变量类:一类具有相同属性和方法的事物 类的定义 class关键字类名的首字母大写类中直接定义属性:静态属性(变量) 和动态属性(函数)类名的两个作用:属性... 查看详情

day7初识面向对象,面向对象之继承与派生

一、面向对象引言 一、面向对象的程序设计的由来  详述见:http://www.cnblogs.com/linhaifeng/articles/6428835.html  二、面向对象引子  写一个简单程序:人狗大战角色:人、狗人角色特性:攻击力、生命值、名字、等级... 查看详情

初识面向对象

构造函数:主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作,当创建对象时,对象会自动调用它的... 查看详情

17-面向对象初识

目录: 面向对象:以数据为重心,所有的处理代码都是围绕数据展开,数据即对象;就是一件事‘让谁来做’,这个‘谁’就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把这件事做好就行了;比如,自己组... 查看详情

python中面向对象初识到进阶(代码片段)

面向对象初识到进阶#面向对象结构:#class类名:#def__init__(self,参数1,参数2):#self.对象的属性1=参数1#self.对象的属性2=参数2##def方法名(self):pass##def方法名2(self):pass##对象名=类名(1,2)#对象就是实例,代表一个具体的东西##类名():类名+... 查看详情