前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中我刚知道的秘密

Python中我刚知道的秘密

作者头像
简单、
发布2018-07-17 17:28:10
3630
发布2018-07-17 17:28:10
举报
class Student:

    def __init__(this, name, age):
        this.name = name
        '实例变量'
        this.age = age

    def get_student(this):
        print('姓名:{} 年龄:{}'.format(this.name, this.age))


student = Student('张三', 18)
student.get_student()

我一直以为,Python中类里构造函数和函数里的self都是固定的,不可以变动的,今天我才知道。原来这里的self都可以自定义,自己想叫啥名都可以。但是官方推荐还是用self!


一个函数中返回多个结果 以前一直不知道,用了最拙劣的方法,今天改正!

def get_number(num1,num2):
    num1 = num1 * 3
    num2 = num2 * 2
    return num1,num2

age1, age2 = get_number(1,3)
print(age1,age2)

之前一直在想一个问题,我要在一个函数中去循环一个列表或其他,该如何正确的返回呢? 现在找到了答案!

def _get(n):
    return n * 2


ss = [_get(i) for i in range(10)]
print(ss)

在实例方法中访问实例变量

class Student(object):

    sum = 0

    def __init__(self):
        self.__class__.sum += 1 # 调用类变量
        print(self.__class__.sum)

    def get_user(self):
        self.__class__.num # 调用类变量


student = Student()
student1 = Student()
student2 = Student()

super作用

"""
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,
但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
总之前人留下的经验就是:保持一致性。要不全部用类名调用父类,要不就全部用 super,不要一半一半。
"""

class Base:
    def __init__(self):
        print("Create OK")

class A(Base):
    """docstring for A."""
    def __init__(self):
        super(A, self).__init__() # super的用处
        print("1")

class B(Base):
    """docstring for B."""
    def __init__(self):
        Base.__init__(self)
        print("2")

base = Base()
a = A()
b = B()

if __name__ == '__main__':
    print(a,b)

定义类方法

class A:
    sum = 0

    @classmethod # 定义类方法
    def plus(cls): # cls 名字一样可以随意更改
        cls.sum += 1
        print(cls.sum)


a = A()
a.plus()

为什么在python的类中,带有双下划线的函数是私有的,但"__init__"却不是私有的呢?原因很简单,"__init__"不仅前面有两个双下划线,后面还有两个,所以python就知道那个是私有那个是公开的了。

Tags: None

Archives QR Code

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档