Hướng dẫn OOP python cơ bản và chạy kết hợp với colab
1. Cấu trúc folder
- gồm file run.py bên ngoài cùng. (cái này cũng dùng để test)
- folder obj:
- animal.py chứa object Animal
- cat.py chứa object Cat (kế thừa Animal)
- dog chứa object Dog (kế thừa Dog)
- any_func.py chứa các hàm cơ bản (hello, f1, f2)
- File Main.py dùng để test thử.
2. Nội dung các file tương ứng
Có thể dùng hàm run.py hoặc Main.py để chạy
Nếu dùng hàm Main.py thì sửa nội dung file cat.py và dog.py chỗ import thế này.
1
2
3
4
| # for Main.py (cung folder obj voi cat.py, dog.py)
#from animal import Animal
# for run.py, nam ngoai folder obj (cat.py, dog.py)
from obj.animal import Animal
|
Nếu dùng hàm run.py thì sửa nội dung file cat.py và dog.py chỗ import thế này.
1
2
3
4
| # for Main.py (cung folder obj voi cat.py, dog.py)
#from animal import Animal
# for run.py, nam ngoai folder obj (cat.py, dog.py)
from obj.animal import Animal
|
File any_func.py
1
2
3
4
5
6
7
8
9
| def f1(n):
return n * n
def hello():
print('hello')
def f2(n, m = 0):
k = n * 2 + m
print("value: ", k)
|
File cat.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| # for Main.py (cung folder obj voi cat.py, dog.py)
#from animal import Animal
# for run.py, nam ngoai folder obj (cat.py, dog.py)
from obj.animal import Animal
class Cat(Animal):
def __init__(self, name, breed):
# Gọi hàm khởi tạo của lớp cha
super().__init__(name, species="cat")
self.breed = breed
def make_sound(self):
return "Meow!"
def info(self):
return f"{self.name} is a {self.breed} {self.species}"
|
File animal.py
1
2
3
4
5
6
7
8
9
10
| class Animal:
def __init__(self, name, species):
self.name = name
self.species = species
def make_sound(self):
pass
def info(self):
return f"{self.name} is a {self.species}"
|
File dog.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| # for Main.py (cung folder obj voi cat.py, dog.py)
#from animal import Animal
# for run.py, nam ngoai folder obj (cat.py, dog.py)
from obj.animal import Animal
class Dog(Animal):
def __init__(self, name, breed):
# Gọi hàm khởi tạo của lớp cha
super().__init__(name, species="dog")
self.breed = breed
def make_sound(self):
return "Woof!"
def info(self):
return f"{self.name} is a {self.breed} {self.species}"
|
File Main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| from cat import Cat
from dog import Dog
import any_func as af
def hello():
print('hello Main')
if __name__ == "__main__":
# Tạo các đối tượng
cat1 = Cat("Whiskers", "Siamese")
dog1 = Dog("Buddy", "Golden Retriever")
# Gọi phương thức info của mỗi đối tượng
print(cat1.info()) # Kết quả: Whiskers is a Siamese cat
print(dog1.info()) # Kết quả: Buddy is a Golden Retriever dog
# Gọi phương thức make_sound của mỗi đối tượng
print(cat1.make_sound()) # Kết quả: Meow!
print(dog1.make_sound()) # Kết quả: Woof!
hello()
af.hello()
res = af.f1(3)
print('res: ', res)
af.f2(5, 9)
|
File run.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| import obj.any_func as af
from obj.cat import Cat
from obj.dog import Dog
def hello():
print('hello Main')
if __name__ == "__main__":
# Tạo các đối tượng
cat1 = Cat("Whiskers", "Siamese")
dog1 = Dog("Buddy", "Golden Retriever")
# Gọi phương thức info của mỗi đối tượng
print(cat1.info()) # Kết quả: Whiskers is a Siamese cat
print(dog1.info()) # Kết quả: Buddy is a Golden Retriever dog
# Gọi phương thức make_sound của mỗi đối tượng
print(cat1.make_sound()) # Kết quả: Meow!
print(dog1.make_sound()) # Kết quả: Woof!
hello()
af.hello()
res = af.f1(3)
print('res: ', res)
af.f2(5, 9)
|
3. Chạy với colab thế nào?
1
2
| from google.colab import drive
drive.mount('/content/drive')
|
1
| pathRoot = '/content/drive/MyDrive/[2023] working/colabs/diffusion-code/updated/test/'
|
1
| %cd /content/drive/MyDrive/[2023] working/colabs/diffusion-code/updated/test/
|
Link: [PythonOOP] (https://github.com/dophuchao/dophuchao.github.io/blob/master/ipynb_files/OOP-python.zip)
Tài liệu tham khảo
Internet
Hết.