`

Python备忘录

阅读更多

        使用Python编程有一段时间了,但是Python并不是我最常用的编程语言,更重要的是Python与诸如Java、C#这类典型的OO语言在很多方面存在着差异。因此我那糟糕的记忆力总让我在编写Python程序的时候,不得不搜肠刮肚,挖空心思。俗话说得好:好记性不如烂笔头。因此,还是为我如漏斗般的记忆开个备忘录吧!

Part 1 与OO概念相关
        1、如何构造类实例?
        A:在Java和C#中,构造类实例都需要使用关键字new加上构造函数的形式。而在Python中,则不需要使用new关键字,直接使用构造函数即可;
        2、如何定义构造函数?
        A:记住啦,与类名相同的函数并不是构造函数哦!在Python中,有一个特别的函数__init__承担着构造函数的重任。如下所示:

>>> class Clazz:
     
def __init__(self):
         self.a 
= 2

>>> clazz = Clazz()
>>> clazz.a
2


        3、如何实现类继承?
        A:在Python中,继承的语法如下:class DerivedClass(BaseClass1, BaseClass2...)。从中你可以发现,Python是支持多重继承的。
        4、如何实现访问控制?
        A:事实上,Python中的类机制对于访问控制并没有过多的约束,类中的所有成员方法及所有数据成员都是public的。如果你真的希望某个方法或是某个变量不被类外部访问的话,只能通过替代的方法去实现访问控制,而且实现的访问控制仅限于形式上的,因为这个替代的方法只是改变定义的方法名和变量名而已。如下所示:

>>> class A:
    
__a = 2
    
def __sayHi(self):
        
print "Hi!"

>>> a = A()
>>> dir(a)
[
'_A__a''_A__sayHi''__doc__''__module__']


        5、self参数的含义是什么?
        A:以上的两个实例代码中都出现了self参数,聪明的你联想一下就应该能够知道它的含义了。是的,就跟我们常用的this的含义是一样的。通常类实例的方法(你可以认为是非static的)都要包含self这个参数,否则你无法引用属于类的变量及方法;
        6、如何定义static的方法?
        A:定义static的方法很简单,不过要比在Java和C#中实现要复杂一些,因为它是通过利用staticmehod(function)的重定义实现,而非关键字。如下所示:
>>> class Clazz:
     
def methodA():
         
print "Hello, World."
     methodA 
= staticmethod(methodA)

>>> Clazz.methodA()
Hello, World.
>>> clazz = Clazz()
>>> clazz.methodA()
Hello, World.

Error Definition 
1:
>>> class Clazz:
     
def methodA(self):
         
print "Hello, World."
     methodA 
= staticmethod(methodA)

>>> Clazz.methodA()
Traceback (most recent call last):
  File 
"<stdin>", line 1in ?
TypeError: methodA() takes exactly 
1 argument (0 given)
>>> clazz = Clazz()
>>> clazz.methodA()
Traceback (most recent call last):
  File 
"<stdin>", line 1in ?
TypeError: methodA() takes exactly 
1 argument (0 given)

Error Definition 
2:
>>> class Clazz:
     
def methodA():
         
print "Hello, World."

>>> Clazz.methodA()
Traceback (most recent call last):
  File 
"<stdin>", line 1in ?
TypeError: unbound method methodA() must be called with Clazz instance as first argument (got nothin
g instead)
>>> clazz = Clazz()
>>> clazz.methodA()
Traceback (most recent call last):
  File 
"<stdin>", line 1in ?
TypeError: methodA() takes no arguments (
1 given)

Instance Method Definition:
>>> class Clazz:
     
def methodA(self):
         
print "Hello, World."

>>> Clazz.methodA()
Traceback (most recent call last):
  File 
"<stdin>", line 1in ?
TypeError: unbound method methodA() must be called with Clazz instance as first argument (got nothing instead)
>>> clazz = Clazz()
>>> clazz.methodA()
Hello, World.

以上给出了有关static方法的多种定义,只有第一种真正能够满足static方法的要求。
分享到:
评论

相关推荐

    终极Python备忘录

    《终极Python备忘录》是一份综合性的Python编程学习资源,包含了从基础语法到高级技巧的全面概述。这个压缩包包含了一系列PDF文档,旨在帮助Python初学者和有经验的开发者快速查阅关键概念和API,提升编程效率。以下...

    Python-这个仓库是为数据科学量身定制的Python备忘录列表

    这个仓库,"Python-这个仓库是为数据科学量身定制的Python备忘录列表",特别聚焦于NumPy,这是Python科学计算的核心库。 NumPy(Numerical Python)是Python中的一个基础包,用于处理大型多维数组和矩阵。其核心...

    python使用tkinter实现简单有界面的备忘录

    本篇将详细讲解如何使用Tkinter来实现一个简单的备忘录应用,涵盖增、删、改、查的基本功能。 首先,我们需要导入Tkinter库,并初始化窗口。在Python中,可以这样引入Tkinter库: ```python import tkinter as tk ...

    设计模式专题之(十九)备忘录模式---设计模式备忘录模式示例代码(python--c++)

    备忘录类可以是简单数据结构,如C++中的结构体或Python中的类,也可以是复杂的数据结构。它只存储必要的状态,不包含任何可以改变原始对象状态的方法。 3. 操纵者(Caretaker):负责管理备忘录,但只能持有备忘录,...

    Python简单的备忘录工具

    内容概要: 这段Python代码是一个备忘录管理工具,名为 "MemoManager",它可以帮助用户记录和管理备忘录条目,包括备忘录的内容。 适用人群: 适用于需要记录和管理备忘录的个人用户、学生、职场人士、项目经理以及在...

    Python设计模式之备忘录模式原理与用法详解

    在Python中,备忘录模式可以通过类的定义来实现。 首先,我们来看`Originator`(发起人)类,它是备忘录模式的核心。`Originator`通常是一个具有复杂状态的对象,它需要被备份。在这个例子中,`Originator`有一个`...

    代码备忘录(经典的代码备忘录)

    2. **多语言支持**:作为一个全面的工具,代码备忘录通常支持多种编程语言,如Java、Python、C++等,这意味着无论你使用哪种语言进行开发,都能找到合适的存储空间。 3. **快速搜索**:强大的搜索功能是其一大亮点...

    python 桌面备忘贴 备忘录

    python(tkinter) 桌面备忘贴 备忘录

    Python设计模式编程中的备忘录模式与对象池模式示例

    Memento备忘录模式 备忘录模式一个最好想象的例子:undo! 它对对象的一个状态进行了’快照’, 在你需要的时候恢复原貌。做前端会有一个场景:你设计一个表单,当点击提交会对表单内容 验证,这个时候你就要对用户...

    备忘录模式代码示例

    备忘录模式是一种设计模式,它允许对象在不破坏封装性的前提下,捕获和存储其内部状态,以便在需要时能恢复到该状态。这种模式在需要保存和恢复对象状态,而又不想对外部世界暴露其内部实现细节时非常有用。备忘录...

    设计模式之备忘录模式(Memento Pattern)

    备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...

    小程序的几个案例

    在IT行业中,小程序作为一种轻量级的应用形式,已经成为开发者和用户之间的重要桥梁。它们无需安装,即用即走,极大地提升了用户体验。在这个“小程序的几个案例”中,我们看到一个名为"practise_demo"的压缩包,它...

    jquery+bootstrap 实现简单备忘录

    在开发过程中,我们需要考虑数据的持久化存储,这可能涉及到后端服务,如使用PHP、Python或Node.js等服务器端语言搭建API接口,将备忘录数据存入数据库(如MySQL、MongoDB)。同时,为了保证数据安全,应使用HTTPS...

    记事本备忘录

    标题中的“记事本备忘录”指的是一个软件或应用程序,它结合了传统的文本编辑器(记事本)和备忘录管理功能。在IT领域,这样的应用通常用于记录简单的文字信息,设置提醒,或者作为轻量级的任务管理工具。 在描述中...

    SQLite的小例子--备忘录

    例如,在Python中,可以使用`sqlite3.connect('备忘录.db')`来创建或打开名为“备忘录”的数据库文件。 2. 创建表:备忘录应用的核心是一个“备忘录”表,我们需要用SQL语句创建它。表结构可能包括ID(主键)、标题...

    万年历备忘录

    在前端,备忘录的创建、编辑和显示可能通过图形用户界面(GUI)实现,使用诸如Tkinter(Python)、Swing(Java)或Qt(多语言跨平台框架)等库来构建。用户界面应简洁易用,允许用户输入文本、设置提醒、分类备忘录...

    使用Python实现微信提醒备忘录功能

    最近工作比较繁杂,经常忘事,有时候记了备忘录结果却忘记看备忘录,但是微信是每天都会看的,于是就想到写 一个基于微信的提醒系统。这篇文章主要介绍了使用Python实现微信提醒备忘录功能,需要的朋友可以参考下

    使用Python制作自动推送微信消息提醒的备忘录功能

    即使有时候把事情记录在了小本本上或者手机、电脑端备忘录上,也总会有查看不及时,导致错过的尴尬。如果有一款小工具,可以及时提醒,而不用再主动去查备忘录,化被动为主动,那就再合适不过了。因此,在这里我们就...

    python-basic

    第五部分“Python备忘录”是学习过程中的参考资料,总结了基础的值、运算符,以及提供了扩展阅读的链接,这些链接可能是网络文章,涉及Python在实际项目中的应用,如网站结构、数据库操作、Web框架、Web开发等内容。...

Global site tag (gtag.js) - Google Analytics