面向对象注意事项

在面向对象中,有实例变量和类变量,实例变量为类对象的实例成员,而类变量不仅类可以直接调用,而且类的对象也可以调用。类对象可以对实例变量进行添加、修改、删除操作等。。。

下面就用个示例来做参考:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

class  PersonInfo(object):
    commity_data = 123
    def  __init__(self,name,age):
        self.name = name
        self.age = age
    def  weight(self):
        print(‘%s weight is high‘% self.name )

    def  happie(self):
        print(‘happie de age is %‘ % self.age)

p1 = PersonInfo(‘goser‘,20)
p2 = PersonInfo(‘jain‘,23)
p1.commity_data = ‘change_data‘
p1.sex = 1
p1.age = 28
del p1.name
print(p1.sex,p1.age,p1.commity_data,p2.commity_data)

PersonInfo.commity_data = ‘test‘

print(p1.commity_data,p2.commity_data)

代码里的

p1.sex = 1表示对类对象p1做变量的添加操作,
p1.age = 28表示对类对象p1做变量的修改操作
del p1.name表示对类对象p1做变量的删除操作
p1.commity_data = ‘change_data‘表示对类对象p1调用类变量时对类变量的修改操作,这个操作只是对象p1在自己的内存地址中加上变量commity_data,切其值被赋予了新值为‘change_data’,这个变更类变量的值只对对象p1生效,对对象p2不起作用。
PersonInfo.commity_data = ‘test‘表示类调用类变量时对类变量的修改,这个修改只对对象p2生效,因为对象p2内存地址中没有添加类变量commity_data,所以p2还是引用了类中的类变量,而p1没有变化,依然调用的是自己后来添加的commity_data

运行结果:

(1, 28, ‘change_data‘, 123)
(‘change_data‘, ‘test‘)

在面向对象中的多继承的注意事项:

python2中,经典类是按深度优先来继承,新式类是按广度优先来继承的

python3中,经典类和新式类都是按广度优先来继承的。

时间: 2024-12-09 15:45:54

面向对象注意事项的相关文章

面向对象的CSS的作用和注意事项

1)面向对象的CSS的作用: 1.1)加强代码复用,以便维护: 1.2)减小CSS体积: 1.3)提升渲染效率: 1.4)组件库思想.栅格布局可共用.减少选择器.方便扩展. 2)面向对象的CSS的注意事项: 2.1)不要直接定义子节点,应把共性声明放到父类: 2.2)结构和皮肤相分离: 2.3)容器和内容相分离: 2.4)抽象出可重用的对象,建好组件库,在组件库内寻找可用的元素组装页面: 2.5)往你想要扩展的对象本身增加class而不是他的父节点: 2.6)对象应保持独立性: 2.7)避免使用

Java学习: 面向对象的使用与注意事项

面向对象的使用与注意事项 面向过程:当需要实现一个功能的时候,每一个具体的步骤都需要亲力,详细处理每一个细节面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事. 类与对象的关系 类是对一类事物的描述,是抽象的. 对象是一类事物的实例,是具体的. 类是对象的模板,对象是类的实例. 定义一个类,用来模拟“学生”事物.其中就有两组成部分: 属性(是什么): 姓名 年龄 行为(能做什么): 吃饭 睡觉 学习 对应到Java的类当中:成员变量(属性): Stri

面向对象的CSS注意事项

1.不要直接定义子节点,应把共性声明放到父类 : 2.结构和皮肤相分离. 3 . 结构和内容相分离. 4.抽象出可重用的元素,建好组件,在组件库内寻找可用的元素组装页面. 5.往你想要扩展的对象本身在增加class而不是他的父节点. 6.对象应保持独立性. 7.避免使用ID选择器,权重太高,无法重用.(ID)选择器 是为js使用. 8.避免 位置相关的样式. 9.保证选择器相同的权重. 10.类名 简短 清晰 鱼 语义化 OOCSS的名字并不影响HTML语义化

PHP 面向对象中常见关键字使用(final、static、const和instanceof)

PHP 面向对象中常见关键字的使用: 00x1.Final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用final标识的成员方法,在子类中不能覆盖. 总结:final表示为最终的意思,所以使用final关键字的类或者类中的成员方法是不能被更改的. 00x2.Static :static关键字将类中的成员属性或者成员方法标识为静态的,static标识的成员属性属于整个类,static成员总是唯一存在的,

面向对象学习笔记

abstract:抽象类或方法的关键字注意事项:一个类中至少有一个抽象方法不允许有大括号主要意义就是规范方法,要求必须按照抽象中的方法来写继承抽象类的类,必须重载完全抽象类的方法抽象类是不能被实例化的,因为本身没有意义 extends 继承的关键字 类中常用的关键字:final 被定义的类不能被继承,该类的方法不能被继承,相当于一个锁的功能self self::静态成员,相当于类名称::静态成员,和this是有区别的,$this访问类中的内容必须实例化,而self是直接可以访问类中的内容的,多用

面向对象的几个问题

1.面向对象思想的特点     (1)是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)     (2)可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)     (3)角色发生了转换,将我们从执行者变成了指挥者     (4)就是不断的创建对象,使用对象,指挥对象做事情.(如果有对象,直接用对象,对我们直接提供服务) 2.面向对象的特征     (1)封装:是隐藏对象的属性和实现细节,仅对外提供公共的访问方式.     (2)继承:把多个类中相同的属性提

面向对象知识点

/*目前存在的问题: 1. 无法描述清楚这两个类之间的继承关系. 2. 存在着重复代码. 面向对象的三大特征: 1. 封装 2. 继承 3. 多态. 继承:继承是通过关键字extends体现的. 继承的格式: class 类名1 extends 类名2{ } 继承要注意的事项: 1. 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承. 2. 父类私有的成员不能被继承. 3. 父类的构造函数不能被继承. 4. 创建子类对象时默认会先调用父类无参的构造函数. *//*疑问: 为

PHP面向对象详解:继承、封装与多态

首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体,称为对象,对象是一个具体的个体 所以,面向对象即我们专注对象来处理问题,通过从一个个具有属性和功能的类中拿到对象来处理问题. 下面我们再来细说下面向对象的三大特征:继承/封装/多态 一.继承 在PHP中我们主要通关Extends关键字来实现继承   ->class Student extends P

JS面向对象与原型

面向对象与原型一.创建对象 1.基本方法 1 var box = new Object(); //创建对象 2 box.name = 'Lee'; //添加属性 3 box.age = 100; 4 box.run = function(){ //添加方法 5 return this.name + this.age + '运行中...'; //this表示当前作用于下的对象 6 }; 7 8 alert(box.run()); 9 10 alert(this.anme); //这里的this代表