美文网首页python学习
python学习(1)-下划线&self含义& list, tu

python学习(1)-下划线&self含义& list, tu

作者: 读书给你听 | 来源:发表于2018-01-03 17:42 被阅读0次

1. 下划线(单/双)

主要存在四种情形

    1. object # public

    2. __object__ # 系统专用,用户不要定义这样的

    3. __object # private私有,在运行时候命名改编,只有类对象自己能访问

    4. _object # 私有,保护变量

变量名_object被看作是“私有的”在模块或类外不可以使用,不能用'from moduleimport *'导入。

"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

单划线对象可以访问,但良好的编程习惯是不要在外部使用它。双下划线的对象,外部使用会直接报错。

2. self含义

self代表类的实例,而非类。

class Test:

    def prt(self):

        print(self)

        print(self.__class__)

t = Test()

t.prt()

执行结果如下

<__main__.Test object at 0x000000000284E080>

<class '__main__.Test'>

self是不可以省略的

class Test:

    def prt(this):

        print(this)

        print(this.__class__)

t = Test()

t.prt()

在Python的解释器内部,当我们调用t.prt()时,实际上Python解释成Test.prt(t),也就是说把self替换成类的实例。

self总结

self在定义时需要定义,但是在调用时会自动传入。

self的名字并不是规定死的,但是最好还是按照约定是用self

self总是指调用时的类的实例。

3. list, tuple, dict, set的区别

定义:

list:链表,有序的项目, 通过索引进行查找,使用方括号”[]”;

tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”;

dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;

set:集合,无序,元素只出现一次, 自动去重,使用”set([])”

应用场景:

list, 简单的数据集合,可以使用索引;

tuple, 把一些数据当做一个整体去使用,不能修改;

dict,使用键值和值进行关联的数据;

set,数据只出现一次,只关心数据是否出现, 不关心其位置;

Python

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

#eclipse pydev, python 2,7

mylist = [1, 2, 3, 4, 'Oh']

mytuple = (1, 2, 'Hello', (4, 5))

mydict = {'Wang' : 1, 'Hu' : 2, 'Liu' : 4}

myset = set(['Wang', 'Hu', 'Liu', 4, 'Wang'])

Output

[1, 2, 3, 4, 'Oh']

(1, 2, 'Hello', (4, 5))

{'Liu': 4, 'Wang': 1, 'Hu': 2}

set(['Liu', 4, 'Wang', 'Hu'])

相关文章

网友评论

    本文标题:python学习(1)-下划线&self含义& list, tu

    本文链接:https://www.haomeiwen.com/subject/vhcknxtx.html