首页 > 其他分享 >OOP

OOP

时间:2024-01-26 12:55:33浏览次数:12  
标签:__ name self 引用 模块 main OOP

OOP

1. 创建类

name

  • 每个 Python 模块都包含内置的变量 name,当模块运行时,__name__等于文件名(包含了后缀.py)
  • 如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)
    main
  • main”等于当前执行文件的名称(包含了后缀.py)。
    所以当模块被直接执行时,name == 'main'结果为真;而当模块被import到其他模块中时,name == 'main'结果为假,就是不调用对应的方法。
class Employee:
    empCount = 0    # static

    # self 类似 Java 中的 this
    def __init__(self, name, salary):   # 构造器:self 代表类的实例,self 在定义类的方法时是必须有的(虽然在调用时不必传入相应的参数)
        self.name = name
        self.salary = salary
        Employee.empCount += 1

    def displayCount(self):
        print("Total Employee %d" % Employee.empCount)

    def displayEmployee(self):
        print("Name : ", self.name, ", Salary: ", self.salary)

if __name__ == '__main__':
    e = Employee("kobe", 200)   # 创建对象
    e.displayCount()
    e.displayEmployee()

    # 访问属性的方法
    print(hasattr(e, 'name'))   # f存在属性,返回 true
    print(getattr(e, 'name'))
    setattr(e, 'name', 'Jack') # Setter
    print(getattr(e, 'name'))
    delattr(e, 'name')   # 删除属性
    print(hasattr(e, 'name'))

2. 内置类属性

  • dict : 类的属性(包含一个字典,由类的数据属性组成)
  • doc :类的文档字符串
  • name: 类名
  • module: 类定义所在的模块(类的全名是'main.className',如果类位于一个导入模块mymod中,那么className.module 等于 mymod)
  • bases : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

3. 垃圾回收

一个内部跟踪变量,称为一个引用计数器
垃圾回收机制不仅针对引用计数为0的对象,同样也可以处理循环引用的情况。循环引用指的是,两个对象相互引用,但是没有其他变量引用他们。这种情况下,仅使用引用计数是不够的。Python 的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器。作为引用计数的补充, 垃圾收集器也会留心被分配的总量很大(即未通过引用计数销毁的那些)的对象。 在这种情况下, 解释器会暂停下来, 试图清理所有未引用的循环。

4. 类的继承

标签:__,name,self,引用,模块,main,OOP
From: https://www.cnblogs.com/aclq/p/17989085

相关文章

  • Hadoop进级教程之-Flume架构原理
    ApacheFlume是一个分布式的、可靠和易用的日志收集系统,用于将大量日志数据从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。Flume的使用不仅仅限于日志数据聚合,由于数据源是可定制的,Flume可以用于传输大量数据,包括但不限于网络流量数据、社交媒体生成的数据......
  • hadoop优化namenode内存优化
    Namenode内存配置在Hadoop2.x里,如何配置NameNode内存?NameNode默认内存2000M。如果你的服务器内存是4G,那一般可以把NN内存设置成3G,留1G给服务器维持基本运行(如系统运行需要、DataNode运行需要等)所需就行。在hadoop-env.sh文件中设置:HADOOP_NAMENODE_OPTS=-Xmx3072mHadoop3.x系列,如......
  • hadoop垃圾回收
    开启回收站之后,删除的文件会送进回收站,等待超时后再彻底删除,这样子方便恢复原数据,起到防止误删除、备份等作用。本质上是将文件放在特定目录存储,跟windows的回收站功能一样。单位是min参数说明:1、默认值fs.trash.interval=0,0表示禁用回收站;其他值表示设置文件的存活时间;2......
  • 实验 3 Spark 和 Hadoop 的安装
    (1)启动Hadoop,在HDFS中创建用户目录“/user/hadoop”;  (2)在Linux系统的本地文件系统的“/home/hadoop”目录下新建一个文本文件test.txt,并在该文件中随便输入一些内容,然后上传到HDFS的“/user/hadoop”目录下;  (3)把HDFS中“/user/hadoop”目录下的test.txt......
  • SV OOP-1
    内容面向对象编程面向对象的基本概念对象没有办法直接操作,需要通过handle(指向对象的指针)进行操作面向对象的基本术语面向对象的优势类的定义实例化对象new()-产生具体对象,开辟新的内存空间句柄handle对象内存空间释放使用对象与其他语言类似通......
  • python 异步回调传递参数 warning cell-var-from-loop
    warning:cell-var-from-loopbing解释foriinrange(10):f=lambdai:iprint(f())Thewarningmessagecell-var-from-loopisemittedbyPylint,aPythoncodeanalysistool.Thiswarningisraisedwhenavariableisdefinedinsidealoopandused......
  • Hive报错:Call From hadoop01/172.23.238.2 to hadoop01:10020 failed on connection e
    问题描述在阿里云服务器上安装的Hadoop和Hive,刚开始关闭了防火墙。但是由于服务器被被黑客安装挖矿程序,所以开启了防火墙。但是即使开启了所有可能的端口,但是在向Hive中插入数据时,依然报错提示:CallFromhadoop01/172.23.238.2tohadoop01:10020failedonconnectionexception......
  • Sqoop安装部署
    介绍ApacheSqoop是一个用于在ApacheHadoop和关系型数据库之间传输数据的强大工具。它提供了一种高效的方式,让用户能够将结构化数据从关系型数据库导入到Hadoop的分布式文件系统(HDFS)中,并支持反向操作,将数据从Hadoop导出到关系型数据库。Sqoop的主要功能包括数据导入和导出,以及......
  • scoop设置代理 , 解决”scoop fatal: unable to access“问题
    报错提示UpdatingScoop...fatal:unabletoaccess'https://github.com/ScoopInstaller/Scoop/':Failedtoconnecttogithub.comport443after21091ms:Couldn'tconnecttoserverRemove-Item:找不到路径“C:\Users\kai\scoop\apps\scoop\new”,因为该路......
  • 【OC】一份理解引用计数、runloop、子线程保活比较好的调试代码
    以下提供了一份ViewController.m的源代码,调试工程可以做成:AppDelegate.rootViewController=NavivationController(rootController:rootVC)然后再rootVC中点击屏幕,self.navigationControllerpush:viewController,然后就可以调试代码进行理解。#import"ViewController.h"......