语法:

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类的语法和底层实现的更多相关文章

  1. python类和对象的底层实现

    按照python中"一切皆对象的原理",所有创建的对象,都是一个已知存在的class实例化的结果;那么class又是被哪个"类"实例化的呢?先看下面的一段代码 ...

  2. python 类高级语法 静态方法

    通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方 ...

  3. python 类(object)的内置函数

    python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...

  4. 一文讲全了Python 类和对象内容

    摘要:这是一个关于 Python 类和对象的全部内容. 本文分享自华为云社区<从零开始学python | Python 类和对象-面向对象编程>,原文作者:Yuchuan  . Pytho ...

  5. python类的相关知识第二部分

    类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很 ...

  6. 第8.1节 Python类的构造方法__init__深入剖析:语法释义

    一.    引言 凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法. 二.    语法释义 1.   ...

  7. python类——黑板客老师课程学习

    1.基本语法 class class_name(base_class):  base_class是它继承的父类 class_var def methods(self,args): statements ...

  8. 初识Python类

    吐槽:学习面向对象就像你追一个女神一样,刚刚有点感觉了,过几天又陷入绝望的感觉,很蛋疼. 类的语法 class Person(object): print("learning class&q ...

  9. Python类的特点 (1):构造函数与方法

    Python中,类的特点: #encoding:utf-8 class Parent(object): x=1 #x是Parent类的属性(字段) def __init__(self): print ...

随机推荐

  1. Vue入门笔记(二)--基础部分之条件渲染

    github地址:https://github.com/iTao9354/basicVue/tree/master/conditional%20rendering(demo01-03) 一.v-if ...

  2. Ubuntu 18.04 下 Redis 环境搭建

    一.安装 Redis ① 下载 wget http://download.redis.io/releases/redis-3.2.8.tar.gz ② 解压 tar -zxvf redis-3.2.8 ...

  3. java多线程高并发知识总结

    1.      计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...

  4. K8S配置安装全过程

    V1.11.1https://github.com/kubernetes/kubernetes/releases/tag/v1.11.1环境准备:系统:centos7.2.1511[root@mast ...

  5. Resources$NotFoundException资源文件没有找到

    错误类型: android.content.res.Resources$NotFoundException: String resource ID #0x1at android.content.res ...

  6. Django数据同步过程中遇到的问题:

    1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__ve ...

  7. Mysql数据字典导出

    1.phpmyadmin中自带的数据字典导出 2.利用下面的脚本: <?php /** * 生成mysql数据字典 */ header("Content-type: text/html ...

  8. Android : Camera2/HAL3 框架分析

    一.Android O上的Treble机制: 在 Android O 中,系统启动时,会启动一个 CameraProvider 服务,它是从 cameraserver 进程中分离出来,作为一个独立进程 ...

  9. 分享我编写的powershell脚本:ssh-copy-id.ps1

      问:通过[字符串界面].如何从win,通过ssh,连接到sshd?答:在任意版本win中,通过cmd.exe,powershell.exe中调用ssh.exe,连接sshd.   问:通过[pow ...

  10. nopcommerce 4.1 core 学习 增加商城配置属性

    需求:  原本是想用nop 来做国际版的商城,可以像亚马逊那样 国内外通用,  专门增加一个跨进元素属性. 学习里面的一些架构思想.  国内的行情还是 像himall  会比较实用. 这是在商城的综合 ...