Skip to content

Commit 0ee16ab

Browse files
add day-13
1 parent 88486ff commit 0ee16ab

File tree

5 files changed

+161
-0
lines changed

5 files changed

+161
-0
lines changed

day-13/access_restriction.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Student(object):
2+
def __init__(self, name, score):
3+
self.__name = name
4+
self.__score = score
5+
6+
def get_name(self):
7+
return self.__name
8+
9+
def get_score(self):
10+
return self.__score
11+
12+
def set_name(self, name):
13+
self.__name = name
14+
15+
def set_score(self, score):
16+
self.__score = score
17+
18+
def show_info(self):
19+
print('this student\'s name is %s and his(her) score is %d.' % (self.__name, self.__score))
20+
21+
s1 = Student('dream', 99)
22+
s1.show_info()
23+
print(s1.get_name())
24+
s1.set_name('dreamapple')
25+
print(s1.get_name())

day-13/class_and_instance.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Student(object):
2+
# 初始化类的实例
3+
def __init__(self, name, score):
4+
self.name = name
5+
self.score = score
6+
7+
# 获取分数等级
8+
def get_grade(self):
9+
if self.score >= 90:
10+
return 'A'
11+
elif self.score >= 80:
12+
return 'B'
13+
else:
14+
return 'C'
15+
16+
17+
dreamapple = Student('dreamapple', 90)
18+
print(dreamapple)
19+
print(dreamapple.get_grade())
20+
21+
dreamapple.age = 24
22+
print(dreamapple.age)

day-13/class_and_instance_attr.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Animal(object):
2+
3+
is_alive = True
4+
5+
def __init__(self, name, age):
6+
self.__name = name
7+
self.age = age
8+
9+
10+
animal1 = Animal('Duo', 10)
11+
12+
print(animal1.is_alive) # True
13+
print(Animal.is_alive) # True
14+
15+
Animal.is_alive = False
16+
print(Animal.is_alive) # False
17+
18+
print(animal1.age) # 10

day-13/get_object_info.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import types
2+
3+
4+
# 使用type进行类别的判断
5+
print(type(1)) # <class 'int'>
6+
print(type('str')) # <class 'str'>
7+
print(type(True)) # <class 'bool'>
8+
print(type(lambda x: x)) # <class 'function'>
9+
print(type(None)) # <class 'NoneType'>
10+
print(type(abs)) # <class 'builtin_function_or_method'>
11+
12+
13+
class Animal(object):
14+
def __init__(self, name):
15+
self.__name = name
16+
17+
def __len__(self):
18+
return 1
19+
20+
21+
animal1 = Animal('DuoDuo')
22+
23+
24+
def func():
25+
pass
26+
27+
28+
print(type(animal1)) # <class '__main__.Animal'>
29+
print(type(func)) # <class 'function'>
30+
31+
print(type(func) == types.FunctionType) # True
32+
print(type(abs) == types.BuiltinFunctionType) # True
33+
print(type(lambda x: x) == types.LambdaType) # True
34+
print(type(x for x in range(10)) == types.GeneratorType) # True
35+
36+
# 使用isinstance判断一个对象是否是一个类的实例
37+
print(isinstance(animal1, object)) # True
38+
print(isinstance(animal1, Animal)) # True
39+
40+
# 还可以判断一个变量是否是某些类型中的一种
41+
print(isinstance([1, 2, 3], (list, tuple))) # True
42+
43+
44+
# 使用dir获取一个对象的所有属性和方法
45+
print(dir(animal1)) # 太多了,暂时不列举出来
46+
print(len([])) # 0
47+
print(len(animal1)) # 1,这个方法需要我们在对象的内部进行实现
48+
49+
# 使用getattr, setattr, hasattr方法
50+
print(getattr(animal1, 'name', 404)) # 404
51+
print(setattr(animal1, 'age', 10)) # None
52+
print(hasattr(animal1, 'age')) # True
53+
54+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
class Animal(object):
2+
3+
def __init__(self):
4+
pass
5+
6+
def run(self):
7+
print('this animal is running!')
8+
9+
10+
class Dog(Animal):
11+
12+
def run(self):
13+
print('this dog is running')
14+
15+
16+
class Cat(Animal):
17+
18+
def run(self):
19+
print('this cat is running')
20+
21+
22+
23+
animal1 = Animal()
24+
dog1 = Dog()
25+
cat1 = Cat()
26+
27+
animal1.run()
28+
dog1.run()
29+
cat1.run()
30+
31+
# 多态的好处
32+
def run(animal):
33+
animal.run()
34+
35+
run(animal1)
36+
run(dog1)
37+
run(cat1)
38+
39+
# 使用方法isinstance判断一个对象是不是一个类的实例
40+
print(isinstance(animal1, Animal))
41+
print(isinstance(dog1, Dog))
42+
print(isinstance(cat1, Cat))

0 commit comments

Comments
 (0)