内置方法 常用模块

__new__

在init 之前 , 实例化对象的第一步是__new__创建一个空间

class Foo:
    def __init__(self):                 # 初始化方法
        print(‘执行了init‘)
    def __new__(cls, *args, **kwargs):  # 构造方法
        # object.__new__(cls)
        print(‘执行了new‘)
        return object.__new__(cls)     #如果这个return不写,init方法永远不会执行

obj = Foo()

执行了new    先执行new
执行了init

创造一个对象  比喻成  捏小人

new 是小人捏出来

init 是小人穿衣服

设计模式  常用的23种

源头是从java里来得  因为Java 开发一个项目 很庞大,个方面人员需要配合,就相应出了一些标准,这样比较好对接。

python  :

  推崇设计模式 :会java 也会python  从java转的python

  贬低设计模式:纯python开发  因为python 一两个人就可以开发一个项目

单例模式:   一个类 只有一个实例

class Foo:
    __instance = None
    def __init__(self,name,age):                 # 初始化方法
        self.name = name
        self.age = age
        self.lst = [name]         #self.lst = [age]  那就只打印年龄  上面的name 被覆盖        # self。lst = [name,age] 打印名字和年龄
    def __new__(cls, *args, **kwargs):  # 构造方法
        if cls.__instance is None:
            cls.__instance = object.__new__(cls)
        return cls.__instance

obj1 = Foo(‘alex‘,20)
obj2 = Foo(‘egon‘,22)
print(obj1.lst,obj2.lst)

      最后结果 print   [‘egon‘] [‘egon‘]

__del__

class Foo:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.file = open(‘file‘,mode = ‘w‘)
    def write(self):
        self.file.write(‘sjahgkldhgl‘)
    def __del__(self):    # 析构方法 : 在删除这个类创建的对象的时候会先触发这个方法,再删除对象
        # 做一些清理工作,比如说关闭文件,关闭网络的链接,数据库的链接
        self.file.close()
        print(‘执行del了‘)

f = Foo(‘alex‘,20)                   # 只要写了这个__del__ 这个方法,他必定执行,所以可以写一个关闭文件放着,以防别人忘记关或者自己,写这个方法上个保险
print(f)                              这个方法就是垫底的 别的程序走完 然后走他 最后一道保险

__len__

和len( )这个内置函数  其实差不多  int 和float  不适用  这个__len__同样不适用

# len()  lst dict set str

# print(‘__len__‘ in dir(list))
# print(‘__len__‘ in dir(dict))
# print(‘__len__‘ in dir(set))
# print(‘__len__‘ in dir(tuple))
# print(‘__len__‘ in dir(str))
#

# print(‘__len__‘ in dir(int))
# print(‘__len__‘ in dir(float))    #后面两个都是返回 False

__eq__

可以自定义   两个值是否相等

__hash__

class Foo():
    pass

obj1 = Foo()
obj2 = Foo()
print(hash(obj1)) print(hash(obj1)) 

两个对象的内存地址都不一样

原文地址:https://www.cnblogs.com/single82/p/9581807.html

时间: 2024-08-29 22:08:07

内置方法 常用模块的相关文章

内置方法及模块初识

析构方法__del__ 构造方法 申请一个空间 析构方法 释放一个空间之前执行 某对象借用了操作系统的资源,还要通过析构方法归还回去 : 文件资源 网络资源 垃圾回收机制 class A: def __del__(self): # 析构方法 del A的对象 会自动触发这个方法 print('执行我了') a = A() del a # 对象的删除 del print(a) class File(): # 处理文件的 def __init__(self,file_path): self.f =

字符串的内置方法(常用) 和 解码与编码

>>>dir(str) ['__add__','__class__', '__contains__', '__delattr__', '__doc__', '__eq__', format__','__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__ slice__','__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '_ d__'

数据类型内置方法

目录 数据类型内置方法总结 数字类型内置方法 整型int() 浮点型 float() 字符串类型内置方法 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 数据类型总结 拷贝 深浅拷贝 数据类型内置方法总结 数字类型内置方法 整型int() 定义方式 age = int(28) int()函数可以将数字转换为整型,直接省去小数部分 常用操作 算术操作 + 比较运算符 长整型 python2 中有长整型概念,python3中没有 存一个值 or 多个值 : 一个值 可变 or

Python模块导入和常用内置方法

模块导入和常见内置方法 __file__: os.path.dirname(__file__)和os.path.join(dirname, filename),通过sys.path.append()可以把模块添加到Python的环境变量目录中 __name__: 直接执行py文件时__name__返回"__main__", 通过import调用时__name__返回的是(包名.模块名) __doc__: 返回.py文件中"""xxx""

python常用数据类型内置方法介绍

熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 一.整型 a = 100 a.xxx() class int(object): def bit_length(self): ##如果将某个整数用2进制表示,返回这个2进制所占bit位数. return 0 def conjugate(self, *args, **kwargs): ##共轭复数 @classmethod # known case def from_bytes(cls, bytes, byteorder, *ar

[python] 类常用的内置方法

内置方法 说明 __init__(self,...) 初始化对象,在创建新对象时调用 __del__(self) 释放对象,在对象被删除之前调用 __new__(cls,*args,**kwd) 实例的生成操作 __str__(self) 在使用print语句时被调用 __getitem__(self,key) 获取序列的索引key对应的值,等价于seq[key] __len__(self) 在调用内联函数len()时被调用 __cmp__(stc,dst) 比较两个对象src和dst __ge

第二模块·函数编程-第1章 函数、装饰器、迭代器、内置方法

01-鸡汤之人丑就要多读书 02-三元运算 03-文件处理 04-文件处理-二进制模式 05-文件处理-智能检测编码的工具 06-文件处理-写模式操作文件 07-文件处理-追加模式操作文件 08-文件处理-混合操作文件 09-文件操作其他功能 10-文件处理-文件修改功能 11-函数-基本介绍 12-函数-默认参数 13-函数-关键参数 14-函数-非固定参数 15-函数-非固定参数2 16-函数-返回值 17-函数-局部变量 18-函数-在函数里修改全局变量 19-函数-在函数里修改列表数据

数据类型的常用操作和内置方法

可变类型和不可变类型 其中可变类型的意义是,当数据的取值改变时,python并不会为它开辟一个新的内存去存放,而是直接在原来的内存地址即id中修改,相当于     数据还是在原来的内存空间中作出修改,并不会成为一个“见义忘利”的小人还是会知恩图报,回到最初创建它的地方因此这种人的待遇薪资自然是可以变化的(可变),并不会因为其他而跳槽.这样的类型主要是列表和字典 不可变类型的意义是,当用户改变了该数据的取值,python会为其开辟一个新的内存空间存放修改完的数据,看到新的空间后,该数据表示不想再回

迭代器,生成器,生成器表达式,常用内置方法

迭代器 迭代器的定义:迭代器指的是迭代取值的工具,迭代是一种重复的过程,每一次重复都是基于上一次的结果而来单纯的重复不是迭代.比如:while的死循环打印同一个值就不是迭代. l=['a','b','c'] i=0 while i < len(l):      print(l[i])      i+=1 这个while循环每一次取值都是基于上一次的结果往下进行,这就是一个迭代的过程. 迭代器的使用原因:迭代器提供了一种通用的且不依赖索引的迭代取值的方式 迭代器的使用方式 特点:可迭代的(iter