-
import math
def is_int(x):
? ? return math.sqrt(x)%1 == 0.0
L = range(1,101)
LL = []
b = filter(is_int,L)
for i in b:
? ? LL.append(i)
print(LL)
查看全部 -
class Animals(object):
??? def __init__(self,name,age): #init前后下劃線是兩條
??????? self.name=name
??????? self.age=age
Dog = Animals('ddd',1)
Cat = Animals('ccc',6)
print(Dog.name,Dog.age)
print(Cat.name,Cat.age)查看全部 -
# Enter a code
class Person(object):
? ??
? ? def __init__(self,name,gender):
? ? ? ??
? ? ? ? self.name? ?= name
? ? ? ? self.gender = gender
? ? ? ??
class Student(Person):
? ??
? ? def __init__(self,name,gender,score):
? ? ? ??
? ? ? ? super(Student,self).__init__(name,gender)
? ? ? ? self.score? = score
? ? ? ??
? ? def __str__(self):
? ? ? ??
? ? ? ? return 'name:{},gender={}'.format(self.name,self.gender)
? ? ? ??
? ? def __repr__(self):
? ? ? ??
? ? ? ? return 'score={}'.format(self.score)
? ? ? ??
bob = Student('Bob', 'Male',80)
? ??
s = str(bob)
t = repr(bob)
? ??
print(s,t)
? ? ? ??
查看全部 -
class Animal(object):
def __init__(self.name.gender)
?? self.name=name
?? self.gendee=gender
????? count=count+1查看全部 -
# Enter a code
class Animal(object):
? ? count = 0
? ? def __init__(self,name,age):
? ? ? ? self.name = name
? ? ? ? self.age = age
? ? ? ? Animal.count += 1
dog = Animal('wangwang',1)
print(Animal.count)
cat = Animal('mimi',3)
print(Animal.count)
查看全部 -
a=1 print(a)
查看全部 -
# 希望一次返回3個函數(shù),分別計(jì)算1x1,2x2,3x3:
def count():
??? fs = []
??? for i in range(1, 4):
??????? def f():
???????????? return i*i
??????? fs.append(f())
??? return fs
f1, f2, f3 = count()查看全部 -
#當(dāng)使用isinstance的時候,我以為任意兩個都可以比較,
#實(shí)際上他的作用是把一個實(shí)例和一個類型相比較
#所以后面一個空應(yīng)該是填類型而不是實(shí)例.
查看全部 -
#上一節(jié),最后的那個練習(xí),開始的時候有點(diǎn)糾結(jié)要不要在類里面定義
#在外面直接賦值,或者說指向一個實(shí)例值是否正確
#但實(shí)際上,那個是把一個值,和一個實(shí)例連在一起,只和那個實(shí)例相關(guān)
查看全部 -
class Cat:pass查看全部
-
#請實(shí)現(xiàn)前面介紹過的斐波那契數(shù)列類Fib,加入__call__方法,使得調(diào)用的方式如下簡單。
# f = Fib() ? ? ? print f(10) ? ?[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
# 自己的難點(diǎn):f = Fib() 要想調(diào)用的時候不帶參數(shù),那其__init__里就不能有參數(shù),要把num挪到其他的地方去
class Fib(object):
? ?def __init__(self):
? ? ? ? ? ?self.res=[] ? ? ? ? ? ? #為什么這么寫
? ?def __call__(self, num):
? ? ? ?# self.res = []
? ? ? ?# self.num = num ? ? ? ? ? ?#這句為什么不用寫,是因?yàn)開_call__里本來就不用寫嗎
? ? ? ?a = 0
? ? ? ?b = 1
? ? ? ?for x in range(num):
? ? ? ? ? ?self.res.append(a)
? ? ? ? ? ?a, b = b, a + b
? ? ? ?return self.res ? ? ? ? ? ? #這個語句
? ?# def __str__(self):
? ?# ? ? return str(self.res) ? ?#這里為什么不用寫__str__這段代碼呢?
f = Fib()
print(f(10)) ? ?#輸出[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]查看全部 -
Python類的數(shù)學(xué)運(yùn)算?
__add__、__sub__、__mul__、__truediv__
def gcd(a,b):
? ?if b==0:
? ? ? ?return a
? ?return gcd(b,a%b)
class Rational(object):
? ?def __init__(self,p,q): ? ? ? ? #這里有兩個參數(shù)
? ? ? ?self.p = p
? ? ? ?self.q = q
? ?def __add__(self, r): ? ? ? ? ? #這里只有一個參數(shù)
? ? ? ?return Rational(self.p*r.q+self.q*r.p,self.q*r.q) ? ? ? ? ? #返回的是一個Rational對象
? ?def __sub__(self, r): ? ? ? ? ? #add函數(shù)實(shí)在創(chuàng)建Rational類之后的,所以在調(diào)用這個函數(shù)的時候Rational已經(jīng)創(chuàng)建完了
? ? ? ?return Rational(self.p * r.q-self.q * r.p, self.q * r.q)
? ?def __mul__(self, r):
? ? ? ?return Rational(self.p * r.p , self.q * r.q)
? ?def __truediv__(self, r):
? ? ? ?return Rational(self.p * r.q, self.q * r.p)
? ?def __str__(self): ? ? ? ? ? ? ?#返回結(jié)果還要寫一個__str__,如果我們的類也想把容易理解的字符串輸出的話,那么我們也需要實(shí)現(xiàn)類的__str__()方法。
? ? ? ?g=gcd(self.p,self.q) ? ? ? ?#這里的使用
? ? ? ?return ?'{}/{}'.format(int(self.p/g),int(self.q/g)) ? ? ? #注意這里format里寫的是什么,寫的self.p、self.q
r1 = Rational(1, 2)
r2 = Rational(1, 5)
print(r1 + r2)
print(r1 - r2)
print(r1 * r2)
print(r1 / r2)查看全部 -
localtion就是屬于Animal這個類的類屬性,此后,通過Animal()實(shí)例化的所有對象,都可以訪問到localtion,并且得到唯一的結(jié)果。
查看全部 -
不通過實(shí)例修改類屬性
查看全部 -
類和實(shí)例對象是有區(qū)別的,類是抽象,是模板,而實(shí)例則是根據(jù)類創(chuàng)建的對象,比如類:動物,只是一個抽象,并沒有動物的詳細(xì)信息,而貓、狗等,則是具體的動物,是類的對象。
實(shí)例屬性每個實(shí)例各自擁有,互相獨(dú)立,而類屬性有且只有一份
class Animal(object):
? ?localtion = 'Asia'????????????????????????????#類屬性??# 通過Animal()實(shí)例化的所有對象,都可以訪問到localtion,并且得到唯一的結(jié)果?
# 類屬性,也可以通過類名直接訪問
# 類屬性也是可以動態(tài)添加和修改的def __init__(self, name, age):
? ? ? ?self.name = name
? ? ? ?self.age = age查看全部
舉報