Python面向对象之封装

类class
继承(单继承、多继承)

类方法@classmethod修饰
实例方法def fn(self)
静态方法@staticmethod修饰

代码区:

class people:
    # 定义基本属性
    name=‘‘;
    age=0;

    # 定义私有属性,类的外部无法访问
    __weight=0;

    def __init__(self, n, a, w):
        self.name = n;
        self.age=a;
        self.weight=w;

    def speak(self):
        print(‘%s is %s years old.‘%(self.name, self.age));

p = people(‘dog‘, ‘8‘);
p.speak();

class people:
    # 共有变量
    name=‘jack‘;
    age=12;

p = people();
# 直接访问共有变量
print(p.name);
print(p.age);

class people2:
    #私有变量
    __name=‘jack‘;
    __age=12;

p2 = people2();
# 私有变量外部不可访问
print(p2.name); # 访问会报错

# 通过内部方法访问私有属性
class people:
    __name=‘jack‘;
    __age=12;

    def getName(self):
        return self.__name;

    def getAge(self):
        return self.__age;

p = people();
print(p.getName(), p.getAge());

# 实例属性可以不定义在class里
class people:
    age=12;

p = people();
p.name = ‘jack‘;
print(p.name, p.age);
print(people.age);
print(people.name); # 会报错

# 内置的构造方法定义属性
class people:
    name=‘jack‘;

    def __init__(self, age):
        self.age = age;

p = people(12);
print(p.age);
print(people.age); # 会报错

class people:
    country=‘china‘;

print(people.country); # china
people.country = ‘Japan‘;
print(people.country); # Japan

p = people();
print(p.country); # Japan

del p.country; # 删除实例属性
print(p.country); # 会报错

class people:
    country=‘china‘;

    # 类方法,用classmethod来修饰
    @classmethod
    def getCountry(cls):
        return cls.country;

p = people();
print(p.getCountry()); # china

class people:
    country=‘china‘;

    # 实例方法
    def getCountry(self):
        return self.country;

# 实例化类
p = people();
print(p.getCountry());

# 静态方法
class people:
    country=‘china‘;

    # 静态方法
    # 静态方法不用传self参数
    @staticmethod
    def getCountry():
        # 直接用类名调用变量
        return people.country;

# 不用实例化即可直接打印静态方法
print(people.getCountry());
时间: 06-30

Python面向对象之封装的相关文章

Python面向对象编程-封装

1引言 你点击了桌面上的Chrome图标,一个浏览器窗口出现了,输入网址就可以在Internet世界愉快玩耍.这一切是怎么实现的呢?Chromium这个多进程的程序是如何启动各个进程的呢?浏览器主进程(界面进程)启动了哪些线程?如何启动的呢?这些问题一直萦绕在心头,一起来看看源代码吧.本文主要针对Chromium for Mac的源代码,其它操作系统大同小异. 2背景知识 浏览器作为一个应用程序,是以进程的形式运行在操作系统上的.首先,Chromium是一个多进程的应用程序,我们需要了解Chro

python面向对象编程 -- 封装、继承(python3.5)

面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外只暴露一些接口供类外部或子类访问,隐藏数据和操作的实现细节. 在其他面向对象语言,比如java中,属性访问控制一般有三种状态:private.protectd.public.python中没有什么东西是完全不可见的,没有任何机制可以强制性的隐藏数据.所以在python中不存在真正的只能在对象内部访问的属性.一个被大多数的pytho

Python面向对象特性 - 封装

类中的私有属性 私有属性包括私有变量和私有方法,在 Python 中,在变量名或者方法名前面加上双下划线,这个属性就成为了类的私有属性.? class Person: def __init__(self, name, age): self.__name = name self.__age = age def __fun(self): print(self.__class__) def say(self): self.__fun() # 自动转换为 调用 _Person__fun 方法 print

python—面向对象的封装

封装 私有属性 class Teacher: __identifier = 'Teacher' #私有静态属性 def __init__(self,name,pwd) self.name = name self.__pwd = pwd #私有属性 内部使用,外部不能使用 def pwd(self): print(self.__pwd) alex = Teacher('alex','3714') alex.pwd() class Teacher: __identifier = 'Teacher'

python面向对象之 封装(Day25)

封装: 隐藏对象的属性和实现细节,仅对外提供公共访问方式 好处:1.将变化隔离 2.便于使用 3.提高复用性 4.提高安全性 封装原则: 1.将不需要对外提供的内容隐藏起来 2.把属性都隐藏,提供公共方法对其访问 二.私有变量和私有方法 在Python中用双下划线开头的方式将属性隐藏起来(设置成私有的) 2.1 私有变量 #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式: class A: __N=0 #类的数据属性就应该是共享的,但是语法上是

oldboy 21th day. I love Python. 面向对象之封装, 多态, 继承 三大特性

一, 主要内容: 接口类:( 只是在工作中, 书写的一种规范.) 抽象类: 用处: 在工作中, 如果你要是规定几个类, 必须有一样的方法, 你要是抽象类. 封装: 1, 将一些属性或者方法 (一些有用的信息) 放置在一个空间中. 2, 私有成员的封装:私有静态变量, 私有属性, 私有方法 特点: 在变量前+__双下划线, 并且在类外面,子类访问私有变量,私有方法 是访问不到的. 因为私有成员,在运行时, 都会变成: _类名__变量名 所以你在类的外部,或者派生类中都不可访问. 有些方法, 变量,

Python面向对象之类的封装、继承与多态

Python面向对象中类的三大特性,即封装.继承与多态,同时也是所有语言在面向对象编程中的重要特性,下面用实际的代码部分针对每一种特性做出说明. 一.封装 顾名思义,封装即把我们想要的内容封装到某个地方,因此在这里记录两个问题,一是如何封装.二是如何调用封装的内容. 1.封装数据 class Company:     def __init__(self, dept, leader):         self.dept = dept         self.leader = leader   

python之面向对象之封装

今天我们终于进入了面向对象,今天做一下面向的封装的总结 #面向对象的封装 #这里定义了一个类,名称为Role,object是所有类的父类 class Role(object): #这里是定义实例的属性,这个实例的属性分别有name,role,wepon,life_value,如果我们通过类Role去创建一个实例的时候,就必须传递这几个参数 #需要说的时候,这里的属性是实例的属性,而不是类的属性,具体关于类的属性,我们在后面介绍 def __init__(self,name,role,wepon,

Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)

概念:                                                                                                                                                     ·        面向过程:根据业务逻辑从上到下写垒代码 ·        函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 ·        面向对象:对函数进行分类和封装,