面向对象进阶

简介: 面向对象进阶

面向对象进阶

1.动态为成员绑定属性

class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
if __name__ == '__main__':
    p = Person('zss', 18)
    p.address = '西安'
    print(p.address)
西安

2.动态绑定类属性

lass Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

if __name__ == '__main__':
    Person.obj = '测试动态绑定'
    p2=Person('lss',19)
    print(p2.obj)
测试动态绑定

3.动态绑定成员方法
需要使用types模块

import types
class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

if __name__ == '__main__':
    p=Person('lss',22)
    def run(self):
        print("测试run方法")
    p.run=types.MethodType(run,p)
    p.run()
测试run方法

4.动态删除
del 对象.属性名
delattr(对象, "属性名")

5.绑定限制
为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的 slots 变量,来限制该class能添加的属性

动态语言:可以在运行的过程中,修改代码
静态语言:编译时已经确定好代码,运行过程中不能修改

class Person(object):
    __slots__ = ('name','age')
    def __init__(self, name, age):
        self.name = name
        self.age = age

if __name__ == '__main__':
    p=Person('lss',22)
    p.sex='男'
AttributeError: 'Person' object has no attribute 'sex'
相关文章
|
6月前
|
算法 Java 程序员
【C++专栏】C++入门 | 类和对象 | 面向过程与面向对象的初步认识
【C++专栏】C++入门 | 类和对象 | 面向过程与面向对象的初步认识
53 0
|
5月前
|
算法 编译器 C语言
C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)
C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)
68 3
|
6月前
|
人工智能 运维 Java
面向对象进阶
面向对象进阶
67 0
|
设计模式 算法 搜索推荐
C++的编程思想和进阶编程
● 一个模式描述了一个不断发生的问题以及这个问题的解决方案;模式是前人的设计经验上总结出来的对于一些普遍存在的问题提供的通用的解决方案;比如单例模式、观察者模式等 ● 软件中有很多模式 面向对象常见的23中设计模式; 反模式;企业应用架构模式等
53 0
|
存储 开发框架 Java
|
Java 程序员 编译器
【Java编程进阶】面向对象思想初识
之前我们学习了 C 语言,在使用 C 语言解决实际的问题时,我们会把解决问题的步骤封装成不同的函数,然后在需要使用时调用函数执行,这就是面向过程编程的思想。使用面向过程使程序的流程十分清楚,例如完成早上去上学这件事情,我们要粗略做以下的步骤,只要以函数的形式详细的完成每个步骤,就成功的解决了这个问题: - 起床 - 穿衣服 - 刷牙洗脸 - 上学 而面向对象中,我们可以抽象出一个学生类,该类中包含了上面的四个方法,此时我们并不需要按上面的步骤来完成。
100 1
【Java编程进阶】面向对象思想初识
|
程序员 测试技术 C语言
c++面向对象程序设计入门
c++面向对象程序设计入门
157 0
|
存储
笔记08-面向对象
笔记08-面向对象
笔记08-面向对象
|
存储 程序员 数据库
面向对象基础进阶03
面向对象基础进阶03
100 0
面向对象基础进阶03
|
存储 安全 Java
面向对象基础进阶02
面向对象基础进阶02
97 0
面向对象基础进阶02