python 类与对象

如果需创建一个类,那么可以使用 class 关键字:
实例
使用名为 a 的属性,创建一个名为 MyClass 的类:

class MyClass:
  a = 6

现在我们可以使用名为 myClass 的类来创建对象:
实例
创建一个名为 p1 的对象,并打印 x 的值:

p1 = MyClass()
print(p1.x)

上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。
要理解类的含义,我们必须先了解内置的 init() 函数。
所有类都有一个名为 init() 的函数,它始终在启动类时执行。
使用 init() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:
实例
创建名为 Person 的类,使用 init() 函数为 name 和 age 赋值:

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

p1 = Person("Bille", 64)

print(p1.name)
print(p1.age)

结果为:
Bille
64

注:每次使用类进行创建新对象的时候,都会自动调用 init() 函数。

对象也可以包含方法。对象中的方法是属于该对象的函数。
实例
插入一个打印问候语的函数,并在 p1 对象上执行它:

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

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("Bill
", 63)
p1.myfunc()

提示:self 参数是对类的当前实例的引用,用于访问属于该类的变量。

self 参数是对类的当前实例的引用,用于访问属于该类的变量。
它不必被命名为 self,您可以随意调用它,但它必须是类中任意函数的首个参数:
实例
使用单词 mysillyobject 和 abc 代替 self:

class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print("Hello my name is " + abc.name)

p1 = Person("Bille", 64)
p1.myfunc()

您还可以这样去修改对象的属性:
实例
把 p1 的年龄设置为 50:

p1.age = 50

您可以使用 del 关键字删除对象的属性:
实例
删除 p1 对象的 age 属性:

del p1.age

使用 del 关键字删除对象:
实例
删除 p1 对象:

del p1

Original: https://www.cnblogs.com/2zly/p/13405841.html
Author: 颖火虫赵云
Title: python 类与对象

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590511/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java中static块、构造块、构造函数的执行顺序

    最近被一个面试题难住了,看来之前对JAVA的执行顺序欠了解。以为原面试题代码: public class Example { public static void main(Str…

    Java 2023年5月29日
    075
  • 2.搭建SSH

    1.创建项目在Eclipse中创建项目,右键解决报错即可导入MyEclipse中,防止Myeclipse中总是报错问题(注意jdk版本问题)2.导包: org.springfram…

    Java 2023年6月13日
    056
  • Callable接口

    Callable接口 特点 1.有返回 2.可以抛出异常 代码实现,Callable接口开启线程 public class CallableTest { public static…

    Java 2023年6月5日
    079
  • springMVC 配置处理器映射器

    //bean 注入的是Jackson jar包 //可用注解驱动替代代替以上功能 Original: https://www.cnblogs.com/icemomo/p/16703…

    Java 2023年6月7日
    065
  • 不重启tomcat,清空catalina.out的几种方式

    相信小伙伴们使用tomcat容器部署项目时,都会遇到这个问题 尤其是刚上线日志级别一般启动为DEBUG级别时,catalina.out文件过一会就会特别特别大,特别占我们服务器上的…

    Java 2023年6月16日
    094
  • JAVA入门基础_从零开始的培训_MYSQL基础

    1、数据库概述 与 MYSQL5.7、MYSQL8.0 安装篇(基于Windows) MYSQL是什么,为什么要使用MYSQL MYSQL的四个版本 MYSQL环境搭建 MYSQL…

    Java 2023年6月9日
    0101
  • 关键字,接口,代码块,枚举

    今日内容 1 关键字 2 代码块 3 接口 4 枚举 1 Java中的关键字 static关键字 : 静态的意思 , 可以修饰变量 , 也可以修饰方法 , 被static修饰的成员…

    Java 2023年6月13日
    076
  • Netty服务端接收的新连接是如何绑定到worker线程池的?

    更多技术分享可关注我 前言 原文:Netty服务端接收的新连接是如何绑定到worker线程池的? 前面分析Netty服务端检测新连接的过程提到了NioServerSocketCha…

    Java 2023年5月30日
    091
  • Mybatis源码解读-插件

    注册 xml方式的注册,是在XMLConfigBuilder#pluginElement完成的。 不明觉厉的同学,请参考上一篇文章:Mybatis源码解读-配置加载和Mapper的…

    Java 2023年6月16日
    0110
  • Nginx作为静态文件服务器

    Nginx 服务器的一个主要任务是提供静态HTML页面、图像或文件访问。 根据请求的不同,文件将从不同的本地目录提供。 /http/www 包含HTML文件 /http/data1…

    Java 2023年5月29日
    065
  • This application has no explicit mapping for /error, so you are seeing this as a fallback.

    描述:项目可以通过启动类正常启动,但是访问路径时报错。 原因:启动类放的位置不对,启动类要放在所有包的最前面。 Original: https://www.cnblogs.com/…

    Java 2023年6月5日
    0111
  • 自定义博客园主题

    博客园主题代码GitHub地址 https://github.com/yushixin-1024/Cnblogs-Theme-SimpleMemory 该项目Fork自https:…

    Java 2023年6月8日
    0119
  • 二、在SSM框架中简单使用mybatis

    1.要使用mybatis,首先准备配置文件。 本文以idea的Maven为例 1.将以下依赖项导入Maven项目中的pom.xml 2.在项目的Src/main/resources…

    Java 2023年5月29日
    083
  • scrapy框架之item与pipelines

    继续以起点小说为例子,我们要做的就是把对象存储到item(类似于一个字典)中,在通过pipelines持久化到txt文件中。之前我们在运行爬虫的后面加”-o 爬虫名称&…

    Java 2023年6月5日
    0101
  • SpringBoot + Spring Cloud Eureka 服务注册与发现

    什么是Spring Cloud Eureka Eureka是Netflix公司开发的开源服务注册发现组件,服务发现可以说是微服务开发的核心功能了,微服务部署后一定要有服务注册和发现…

    Java 2023年5月30日
    094
  • 避坑!SimpleDateFormat不光线程不安全,还有这个隐患

    众所周知,SimpleDateFormat是多线程不安全的 下面这段代码通过多线程使用同一个SimpleDateFormat对象的parse方法, 多次执行代码来测试,可以看到会出…

    Java 2023年6月15日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球