惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
月光博客
月光博客
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Visual Studio Blog
博客园 - 叶小钗
博客园 - 司徒正美
美团技术团队
博客园_首页
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
类属性、类方法、实例属性、实例方法的区别-互联网IT百科
2020-10-05 · via 老董笔记

  深入一点学习类和面向对象,必须有1个意识:

  类有类的内存空间,每个对象有自己的内存空间,只有具备这个常识才能理解面向对象一些行为

# -*- coding:utf-8 -*-

class Person:

    def __init__(self,my_name,my_age):
        self.name = my_name  # 实例变量
        self.age = my_age  # 实例变量

    def sleep(self):
        print('打怪累了,睡一会')

if __name__ =="__main__":
    p = Person('老董',30)
    Person.sleep(p) # 等价于 p.sleep()
    p.sleep()
打怪累了,睡一会
打怪累了,睡一会

  类属性和实例属性

  从表达意义上说,类属性是用来描述整个类(比如人类的数量),实例属性是描述单个对象的(每个人的name、age等)。

  1)在类中定义,但是定义在类里面各种方法之外的变量,称为类属性或类变量。

  2)在类里面的方法内部以self.xxx的方式定义的变量,称为实例属性或实例变量,用(对象.变量名)调用。

  3)类变量为每个对象所共享,类变量可用(类名.类变量名)或者(对象.类变量名)调用。每个对象内部有指针指向自己所属的类,1个对象调用属性时对象内部没有就会去类里寻找。

# -*- coding:utf-8 -*-

class Person:

    count = 0  # 类属性

    def __init__(self,my_name):
        self.name = my_name  # 实例变量
        Person.count += 1 # 类名调用类属性

    place = '地球' # 类属性

if __name__ =="__main__":
    p_objs = []
    for i in range(5):
        p = Person(f'老董{i}')
        p_objs.append(p)
    print(f'现有{Person.count}个人') # 类调用类属性
    print(f'现有{p_objs[0].count}个人') # 对象调用类属性
    print(Person.place)
现有5个人
现有5个人
地球

  类方法和实例方法

  1)实例方法最少包含一个参数,通常命名为self,self代表对象本身。类方法最少也包含一个参数,通常命名为cls,cls代表类本身,类方法需要使用@classmethod进行修饰。

  2)实例方法通常用对象调用(对象.方法名),类方法通常用类名调用(类名.类方法名)

  3)每个对象内部有指针指向自己所属的类,故而对象可以调用类方法(尽量避免这么做),类也有方式调用对象的方法(但是没有必要这么做)。

# -*- coding:utf-8 -*-
import random

class Person:

    count = 0

    def __init__(self,my_name,my_age):
        self.name = my_name  # 实例变量
        self.age = my_age  # 实例变量
        Person.count += 1 # 类名调用类属性

    # 实例方法
    def attack (self,num):
        print(f'{self.name}进攻了{num}米')

    # 类方法
    @classmethod
    def belief(cls):
        print('我们的信念:勇往直前')

if __name__ =="__main__":
    p_objs = []
    for i in range(1,3):
        p = Person(f'老董{i}',30)
        p_objs.append(p)
    print(f'现有{Person.count}个人')
    Person.belief() # 类方法
    for p in p_objs:
        p.attack(random.randint(1,5))
现有2个人
我们的信念:勇往直前
老董1进攻了2米
老董2进攻了1米

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会