`

python小知识点

 
阅读更多

1.python中__init__ 和__new__方法有什么不同的呢?

    

# -*- coding: utf-8 -*-
class Person(object):
    """Silly Person"""
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return '<Person: %s(%s)>' % (self.name, self.age)
if __name__ == '__main__':
    piglei = Person('piglei', 24)
    print piglei

 这是__init__最基础的用法,但是__init__并不是实例化一个类第一个被调用的方法,__new__才是。

1.p = Person(name, age)
2.首先执行使用name和age参数来执行Person类的__new__方法,这个__new__方法会 返回Person类的一个实例(通常情况下是使用 super(Persion, cls).__new__(cls, ... ...) 这样的方式),
3.然后利用这个实例来调用类的__init__方法,上一步里面__new__产生的实例也就是 __init__里面的的 self
所以,__init__ 和 __new__ 最主要的区别在于:
1.__init__ 通常用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的操作,发生在类实例被创建完以后。它是实例级别的方法。
2.__new__ 通常用于控制生成一个新实例的过程。它是类级别的方法。
但是说了这么多,__new__最通常的用法是什么呢,我们什么时候需要__new__?

 

__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径。

 

class PositiveInteger(int):
    def __init__(self, value):
        super(PositiveInteger, self).__init__(self, abs(value))
i = PositiveInteger(-3)
print i

 但运行后会发现,结果根本不是我们想的那样,我们任然得到了-3。这是因为对于int这种 不可变的对象,我们只有重载它的__new__方法才能起到自定义的作用。

 

class PositiveInteger(int):
    def __new__(cls, value):
        return super(PositiveInteger, cls).__new__(cls, abs(value))
i = PositiveInteger(-3)
print (i)
class Positiveint(int):
	def __new__(cls,ints):
		ints=abs(ints)
		return int.__new__(cls,ints)

 

i = PositiveInteger(-3)
print (i)

 2.eval()  && repr()

eval将python的字符串当成表达式来求值,并且返回计算结果。eval('1+1') 返回2

repr相反,他将表达式转化成字符串。

通常情况下eval(repr(object))=object

eg:eval(str(1+1)) 返回2

eval(repr(1=1)) 返回2

但是eval(str(datetime.date.today))返回的却是1986 ,很明显不是datetime.date.today的值。

但是我们用eval(repr(datetime.date.today))返回的就是 datetime.date.today(2016.10.20)

这里还涉及到r% 和s%:我们的r% 采用的是repr的形式,我们的s%采用的是str的形式。

str的形式是给我们的用户看的。而我们的repr是给python看的。

3.java Map和Python dict循环

 

for(Map.Entry<Integer,String> entry:map.entrySet()){
    entry.getKey();
    entry.getValue();

}

 

for i in dict.keys:
    dict[i]

 

 4.python这种一切都是对象,只有引用传递,java中只有值传递。

分享到:
评论

相关推荐

    python 小知识点

    小小知识点敬请欣赏,谢谢大家,不喜欢不要喷我,我就是来混一下的

    Python知识点Python知识点Python知识点Python知识点Python知识点PythonPython知识点.txt

    Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点Python知识点

    Python知识点背诵手册(分章节超详细)Python知识点梳理手册

    《Python知识点背诵手册》是一份详细整理的资料,旨在帮助初学者系统地理解和掌握Python的核心概念与技能。下面我们将深入探讨Python的一些关键知识点。 1. **基础语法** - 变量与数据类型:Python支持整型(int)、...

    python知识点整理.pdf

    python知识点整理.pdf

    PYTHON密集知识点

    ### PYTHON密集知识点详解 #### Python简介 Python 是一种高级编程语言,由 Guido van Rossum 在 1989 年圣诞节期间首次发布。Python 的设计哲学强调代码的可读性和简洁性,使得程序员能够使用较少的代码量来表达...

    一文掌握 Python 密集知识点

    在本文中,我们将深入探讨《从小白到大神,一文掌握 Python 密集知识点》这份资料所涵盖的丰富Python编程知识。Python是一种高级、通用的编程语言,以其易读性、简洁的语法和强大的库支持而备受青睐。无论你是初学者...

    【python入门必背】python入门基础知识点合集、python基础知识背记手册

    【python入门必背】python入门基础知识点合集、python基础知识背记手册 主要内容概要: 第1章 走进 Python. 第2章 Python语言基础 第3章 运算符与表达式 第4章 流程控制语句 第5章 列表与元组 第6章 字典与集合 第...

    总结python知识点大全.zip

    这个名为“总结python知识点大全.zip”的压缩包文件包含了对Python编程语言关键知识点的详细概述。通过解压并查阅“python总结知识点大全.pdf”,我们可以深入学习Python的基础和高级特性。 1. **基础语法** ...

    电子学会Python一级考试知识点总结

    Python是一种广泛应用于教育和考试领域的高级程序设计语言,尤其适合初学者入门。...这些知识点涵盖了电子学会Python一级考试的主要内容,考生需通过大量的练习和实际操作来巩固和提升自己的编程技能。

    python 重点知识点

    在Python编程的学习和实践过程中,掌握重点知识点对于编程能力的提升至关重要。以下是对给定文件内容的知识点的详细说明: 1. Python版本选择: - 在选择Python版本时,首先要明确学习目标和开发需求。 - 需要...

    python知识点知识树

    "Python知识点知识树"旨在构建一个完整的知识体系,帮助学习者系统地理解和掌握Python编程。 首先,Python的基础部分包括变量、数据类型、运算符、流程控制(如条件语句、循环语句)以及函数的使用。理解这些基本...

    python基础知识点汇总

    python基础知识点汇总,概括性的列出python的基础知识,和一些常用的内建函数等,很基础的东西,总结了学习python第一阶段需要学习的东西。个人总结,仅供参考,后面还有进阶的知识点汇总。

    python各知识点对应作业题.zip

    以上仅是对压缩包内可能涵盖的部分Python知识点的概述,具体的作业题目将根据每个知识点的具体细节进行设计,旨在帮助初学者逐步掌握Python编程技能。通过解决这些题目,学习者不仅能加深对Python的理解,还能提升...

    Python知识点总结.doc

    学习Python的过程中,了解并熟练掌握这些基本知识点是至关重要的。这不仅涵盖了数据的存储和处理,还包括了控制流程(如条件语句和循环)、错误处理、模块导入等更复杂的话题。通过不断地实践和应用,可以逐步精通...

    python重要知识点

    这是我学python的所以收获,我很牛的一点是,我把这些知道理解运用,加记忆了。将受益匪浅。

    自学Python知识点汇总.pdf

    在Python编程的学习过程中,我们首先接触到的是基础语法和内置函数。以下是从给定文件内容中提取的知识点,主要包括...文件中提到的内容还在持续更新,说明学习者可以通过这个途径来不断巩固和扩展自己的Python知识。

    入门python的必学知识点.docx

    Python入门知识点 Python是一种简单易学、功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的...

    python入门基础知识点

    ### Python入门基础知识点详解 #### 一、Python中的基本数据类型 Python作为一种强大的高级编程语言,支持多种数据类型。理解这些基本数据类型是学习Python的基础。 ##### 1. 整数(Integer) - **概念**:整数...

    python知识点汇总 思维导图

    python知识点汇总 思维导图,条理清晰,简单明了,还可以用作笔记查询

    python基础知识点总结

    python基础,主要覆盖了初级python中的各个基础知识点的总结,偏理论笔记,欢迎指正补充讨论

Global site tag (gtag.js) - Google Analytics