小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

python面向对象

Python,python 额外说明

收录于:17天前

面向对象

种类

# 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。


# 在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。


# class关键字是定义类的关键,括号是继承额类,支持多继承
class Student():
       pass

例子

# 定义类之后就可以通过类来创建实例,类名也可以获取类本身
print(Student)

# 类复制给变量,和方法一样类通过类名和括号调用,括号传递构造方法的参数
student=Student()
print(student)
<class '__main__.Student'>
<__main__.Student object at 0x0000022BBF77C790>

施工方法

# 类的__init__是构造方法
class Student(object):
    def __init__(self,name,id,address):
        self.name=name
        self.id=id
        self.address=address
    def newStudent(self):
        print("Student(name={0},id={1},address={2})".format(self.name,self.id,self.address))

student=Student('zhansna',12,'beijin')
student.newStudent()
Student(name=zhansna,id=12,address=beijin)
# 在构造方法中定义的变量为实例变量,只有在实例中才可以访问

类方法

# 类方法和普通的函数相比,只有一点不同,类方法第一个参数永远this,并且调用时不用传递该参数。

# this表示类本身

class Student(object):
    def __init__(self,name,id,address):
        self.name=name
        self.id=id
        self.address=address
    def newStudent(self):
        print("Student(name={0},id={1},address={2})".format(self.name,self.id,self.address))
        
# newStudent就是类方法,通过实例化类来调用类方法
Student('lihua',2,'tianjin').newStudent()
Student(name=lihua,id=2,address=tianjin)
# 方法处理定义在类中还可以定义在构造方法中为实例方法,只有在实例中才可以访问,不常用。


# 类方法可以通过_来封装

类变量

# 类的变量可以定义在类中为成员变量
# 类的变量可以定义在构造方法中为实例方法,创建实例才可以访问
# 类的变量定义在方法中为局部方法

class Person(object):
    __name__=None
    __age__=None
    
    def __init__(this,name,age):
        this.__name__=name
        this.__age__=age
    def showPerson(this):
        print('Person(name={0},age={1})'.format(this.__name__,this.__age__))
Person('lihua',22).showPerson()
Person(name=lihua,age=22)
继承
# class关键字定义类后,括号中写该类的继承类
class Student():
    pass

# 未定义默认object,所有类都继承object

class Animal(object):
    name=None
    shout=None
class Dog(Animal):
封装

在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

要定义私有变量只能是___开头

Person('zhansan',22).__name__
'zhansan'
class Person1(object):
    name=None
    __age__=None
    __id=None
    def __init__(self,name,age,id):
        self.name=name
        self.__age__=age
        self.__id=id
person1=Person1('zhansan',22,123456789)
print(person1.name)
print(person1.__age__)
print(person1.__id)

zhansan
22



---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

~\AppData\Local\Temp/ipykernel_8584/1129592823.py in <module>
     10 print(person1.name)
     11 print(person1.__age__)
---> 12 print(person1.__id)


AttributeError: 'Person1' object has no attribute '__id'
# 类变量可以在构造方法中定义,实例变量只能在实例中访问

# 通过定义setter和getter方法对成员变量更改和获取
多态
# 继承的最大的好处是子类获得了父类的全部功能。

# 子类也可以增加一些额外的方法,或对父类的方法重写

. . .

相关推荐

额外说明

Android源码——Configuration源码解析

Configuration源码解析 继承结构 域 常量 ScreenLayout相关 TouchScreen相关 Keyboard相关 KeyboardHidden相关 Navigation相关 NavigationHidden相关 Orientatio

额外说明

Java使用本地浏览器打开网页工具类共享

本文主要分享一个封装工具类,该工具类已实现查找本地可运行的浏览器打开网页。 package com; import java.lang.reflect.Method; /** * browse util * * @author Roc-xb

额外说明

特别练习-1 数据结构-02 字符串

1. 下面关于「串」的叙述中,哪一个是不正确的?( ) A 串是字符的有限序列 B 空串是由空格构成的串 C 模式匹配是串的一种重要运算 D 串既可以采用顺序存储,也可以采用链式存储 正确答案:B 官方解析:暂无官方题目解析,去讨论区看看吧!

额外说明

自然语言处理长文本场景下的信息结构化实践:文本分割(话题分割、段落分割、Text segmentation、TextTiling算法)标题生成两大任务

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性

额外说明

Zabbix6.4监控Redis(zabbix-agent2监控redis)监控Redis中KEY值条目数量

背景 一句话说明需求: Redis在配置了requirepass验证后,使用zabbix模板监控时,没有继承自模板的密码宏变量。无法监控成功,监控项报错:“NO AUTH (Authentication required)”。 一句话说明解决: 通过宏变

额外说明

Python 第七节 第三课

[toc] LEGB 规则      Python     在查找 "名称" 时, 是按照 LEGB 规则查找的: Local-->Enclosed-->Global-->Built in.     Local        指的就是函数或者类方法内部

额外说明

使用队列实现进程之间的数据共享

如何创建多个进程? 进程之间如何实现通信? 使用队列实现进程之间的数据共享!!! # -*- coding: utf-8 -*- """ __author__ = 孤寒者 """ from multiprocessing import Queue,Pro

额外说明

Python format()函数 字符串格式化方法的用法总结(全)

简单介绍 函数:str.format() 其中str为一个字符串对象,通过点号调用,如’qiaoqing’.format() 这一方法作用为通过变量很方便地生成字符串,即字符串的格式化。 与C语言中的用法相比,比如printf(“%d”, num),主要

额外说明

Spring框架学习笔记02:初探Spring——利用组件注解符精简Spring配置文件

文章目录 一、课程引入 二、打开项目【SpringDemo2021】 三、利用组件注解符精简Spring配置文件 1、创建net.hw.spring.lesson02包 2、将lesson01子包的四个类拷贝到lesson02子包 3、修改杀龙任务类 -

额外说明

从零开始学习ASP.NET MVC 1.0 (一) 开天辟地入门篇

http://www.cnblogs.com/zhangziqiu/archive/2009/02/27/ASPNET-MVC-1.html

ads via 小工具