python类的语法和底层实现
语法:
class 类名:
name = “egon” # 类属性
def __init__(self):
self.age = 18 # 对象属性
self.__sex = "female" #对象私有属性
@classmethod
def eat(cls): # 类方法,必须用装饰器修饰 ,可以直接 类名.eat()方式调用,对象可以通过 对象名.eat()调用,但内部使用的数据仍然是类的,因此不建议使用这种方式调用
print("eating")
def run(self): #对象方法
print("running")
对象名 = 类名() # 创建对象
类在定义后,程序运行会从上往下执行,类内部代码都会被执行,方法内部不执行
类调用自己属性:类名.属性,类名.类方法名()
对象调用自己属性:对象名.属性,对象名.对象方法名() ==实则是对象把自己作为参数传给方法去调用
类运行和对象创建都会创建名称空间,类和对象的名称空间相互独立,在对象创建时如果类的__init__方法没有属性,对象又没有重写类的属性和方法时.语法访问的都是类的属性和方法,自身名称空间没有内容
class A:
age = 18
def __init__(self):
pass a = A() print(“A=”,A.__dict__)
print(“a=”a.__dict__) ===
A= {'__module__': '__main__', 'age': 18, '__init__': <function A.__init__ at 0x0000023F1A498C80>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}
a= {}
如果创建时类的__init__方法有对象属性,则会在对象创建时附带给对象
class A:
age = 18
def __init__(self):
self.name = "egon" a = A() print("A=",A.__dict__)
print("a=",a.__dict__) ====
A= {'__module__': '__main__', 'age': 18, '__init__': <function A.__init__ at 0x000001BDAC8D8C80>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}
a= {'name': 'egon'}
python类的语法和底层实现的更多相关文章
- python类和对象的底层实现
按照python中"一切皆对象的原理",所有创建的对象,都是一个已知存在的class实例化的结果;那么class又是被哪个"类"实例化的呢?先看下面的一段代码 ...
- python 类高级语法 静态方法
通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方 ...
- python 类(object)的内置函数
python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...
- 一文讲全了Python 类和对象内容
摘要:这是一个关于 Python 类和对象的全部内容. 本文分享自华为云社区<从零开始学python | Python 类和对象-面向对象编程>,原文作者:Yuchuan . Pytho ...
- python类的相关知识第二部分
类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很 ...
- 第8.1节 Python类的构造方法__init__深入剖析:语法释义
一. 引言 凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法. 二. 语法释义 1. ...
- python类——黑板客老师课程学习
1.基本语法 class class_name(base_class): base_class是它继承的父类 class_var def methods(self,args): statements ...
- 初识Python类
吐槽:学习面向对象就像你追一个女神一样,刚刚有点感觉了,过几天又陷入绝望的感觉,很蛋疼. 类的语法 class Person(object): print("learning class&q ...
- Python类的特点 (1):构造函数与方法
Python中,类的特点: #encoding:utf-8 class Parent(object): x=1 #x是Parent类的属性(字段) def __init__(self): print ...
随机推荐
- Vue入门笔记(二)--基础部分之条件渲染
github地址:https://github.com/iTao9354/basicVue/tree/master/conditional%20rendering(demo01-03) 一.v-if ...
- Ubuntu 18.04 下 Redis 环境搭建
一.安装 Redis ① 下载 wget http://download.redis.io/releases/redis-3.2.8.tar.gz ② 解压 tar -zxvf redis-3.2.8 ...
- java多线程高并发知识总结
1. 计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...
- K8S配置安装全过程
V1.11.1https://github.com/kubernetes/kubernetes/releases/tag/v1.11.1环境准备:系统:centos7.2.1511[root@mast ...
- Resources$NotFoundException资源文件没有找到
错误类型: android.content.res.Resources$NotFoundException: String resource ID #0x1at android.content.res ...
- Django数据同步过程中遇到的问题:
1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__ve ...
- Mysql数据字典导出
1.phpmyadmin中自带的数据字典导出 2.利用下面的脚本: <?php /** * 生成mysql数据字典 */ header("Content-type: text/html ...
- Android : Camera2/HAL3 框架分析
一.Android O上的Treble机制: 在 Android O 中,系统启动时,会启动一个 CameraProvider 服务,它是从 cameraserver 进程中分离出来,作为一个独立进程 ...
- 分享我编写的powershell脚本:ssh-copy-id.ps1
问:通过[字符串界面].如何从win,通过ssh,连接到sshd?答:在任意版本win中,通过cmd.exe,powershell.exe中调用ssh.exe,连接sshd. 问:通过[pow ...
- nopcommerce 4.1 core 学习 增加商城配置属性
需求: 原本是想用nop 来做国际版的商城,可以像亚马逊那样 国内外通用, 专门增加一个跨进元素属性. 学习里面的一些架构思想. 国内的行情还是 像himall 会比较实用. 这是在商城的综合 ...