python高階第二天

2021-10-07 08:58:26 字數 2415 閱讀 2799

=話不多說,上原始碼=

class inttuple(tuple):

#重寫父類方法

def __new__(cls, iterable):

# for i in iterable:

# if isinstance(i,int) and i>0:

#用列表推導式

f=[i for i in iterable if isinstance(i,int) and i>0]

return super().__new__(cls,f) #報錯

i=inttuple([2, -2, "jr", ["x", "y"], 4])

print(i)

print([i for i in range(10) if i % 2 == 0])
我們知道,建立乙個物件,就要給它分配記憶體,為什麼可以節省記憶體呢,是用了__slot__魔法方法,下面看列子

#用之前

pla_1 = [player(1,2,3) for _ in range(10000)] # size=1414 kib __dict__非常消耗記憶體,以空間換取時間

#用之後

pla_2 = [player2(1, 2, 3) for _ in range(10000)]#size=395 kib

# try:

# print("123")

# raise keyerror

# except keyerror as e:

# print("keyerror")

# finally:

print("不論有無異常 都執行")

"""

可以用上下文管理器

"""class demo:

def __enter__(self):

print("start")

return self

def __exit__(self, exc_type, exc_val, exc_tb):

"""引數只有當異常時,才返回值

:param exc_type:異常類

:param exc_val:異常值

:param exc_tb:異常的跟蹤資訊

:return:

"""print("end")

def test(self):

print("i am test")

with demo() as d:

#呼叫__enter__

d.test()

#列印完所用內容呼叫__exit__方法,釋放記憶體

或者,用@contextlib.contextmanager,一步到位,上下文管理器

# #方法一

# #訪問

# def get_age(self):

# return self.age

# #設定

# def set_age(self,age):

# if not isinstance(age,int):

# raise typeerror

# self.age=age

# age_pro=property(fget=get_age,fset=set_age)

#方法二

@property

def age_test(self):

return self.age

@age_test.setter

def age_test(self, age):

if not isinstance(age,int):

raise typeerror

self.age=age

"""

列子:⚪這個類 矩形面積與⚪的面積作比較

"""import math

@total_ordering

class circle:

def __init__(self,r):

self.r=r

def area(self):

return self.r**2*math.pi

def __gt__(self, other):

return self.area()>other.area()

def __ge__(self, other):

return self.area() >= other.area()

c=circle(2)

# print(c.area())

r=rect(2,2)

前端高階第二天

html文件 document 文件的意思 建立乙個html檔案,裡面寫的所有 就會形成乙個html文件。html文件是純文字?答 是 html文件也是純文字,也可以使用記事本開啟,記事本不能解析,只有瀏覽器和能解析html文件。不同的檔案,有不同的字尾 字尾 html 之前也可以是.htm 歷史問...

Python學習第二天

1 python包含6種內建的序列,列表 元組 字串 unicode字串 buffer物件和xrange物件 2 列表和元組的主要區別在於,列表可以修改,元組則不能。在一般情況下,幾乎所有的情況下列表都可以替代元組 3 字串就是乙個由字元組成的序列,可以通過索引獲取序列中的元素,使用負數索引時,py...

python第二天 函式

函式 python內建了很多的函式 要呼叫乙個函式,需要知道函式的名稱和引數,比如求絕對值的函式abs,只有乙個引數 常用函式 abs 求絕對值 abs 1 乙個int 的引數 max 求最大值 多個 int 轉整數 float 轉浮點數 也可以通過變數 a int 把函式體賦給a 函式的定義 使用...