有趣的python

栏目: Python · 发布时间: 7年前

内容简介:​​参数类型是可选的,一般不需要加
r = [x*x for x in range(1, 11)]
print(r)	# 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

在Haskell中称为 List comprehension 的,写法与其类似:
[x*x | x <- [1..10]]

类型是小写的

# str即是表示字符串类型
def myFunc(s: str):
    # some code

参数类型是可选的,一般不需要加

与、或操作符,是用and、or来表示的

b1 = True
b2 = False
o1 = b1 and b2	# False
o2 = b1 or b2	# True

可以执行字符串

exec("print('Hello World')")	# 输出:Hello World

类似js中的 eval

列表可以从后面来访问

lst = [1, 2, 3]
print(lst[-1])	# 输出3, 也要注意不能越界

支持lambda表达式

lambda r, v : r + v

简单的交换变量的方式

x, y = y, x

类似swift的写法,本质都是利用元组来交换:
(x, y) = (y, x)

for-else结构

lst = [1, 3, 5, 7, 9, 13, 19]
for i in lst:
    if i % 2 == 0:
        print("找到了偶数")
        break
else:
    print("没有找到偶数")		# 输出:没有找到偶数

成员变量要在__init__里面指定,在方法外定义的是类属性

class Student(object):
    count = 0
    def __init__(self, name, score):
        self.name = name
        self.score = score
        Student.count += 1

m = Student("MMMM", 80)
print(Student.count)	# 1
print(m.name)	# MMMM

私有变量通过名字来限定

通过在名字前加双下划线,来表示是私有变量。

class Student(object):
    def __init__(self, name, score):
        self.__name = name
        self.__score = score

s = Student("Matthew", 60)
print(s.__name)	# 'Student' object has no attribute '__name'

类可以动态的增、删成员变量

class Student(object):
    pass

o = Student()
o.name = "Matthew"
print(o.name)	# 输出: Matthew

del o.name
print(o.name)	# 'Student' object has no attribute 'name'

js也有这个能力

调用不存在的属性,可以被开发者接管

class Student(object):
    def __getattr__(self, attr):
        if attr == 'name':
            return "Good"

o = Student()
print(o.name)	# 输出:Good

跟OC的转发找不到的方法非常像。包括 __str__ 方法,也非常类似OC中的 description ,来实现自定义打印内容

可以通过代码来设置断点

pdb.set_trace()

有点类似js的 debugger 语句


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++编程思想(第1卷)

C++编程思想(第1卷)

[美] Bruce Eckel / 刘宗田、袁兆山、潘秋菱 / 机械工业出版社 / 2002-9 / 59.00元

《C++编程思考》第2版与第1版相比,在章节安排上有以下改变。增加了两章:“对象的创建与使用”和“C++中的C”,前者与“对象导言”实际上是第1版“对象的演化”一章的彻底重写,增加了近几年面向对象方法和编程方法的最瓣研究与实践的有效成果,后者的添加使不熟悉C的读者可以直接使用这本书。删去了四章:“输入输出流介绍”、“多重继承”、“异常处理”和“运行时类型识别”,删去的内容属于C++中较复杂的主题,......一起来看看 《C++编程思想(第1卷)》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具