Hướng dẫn OOP python cơ bản và chạy kết hợp với colab

Posted by Hao Do on July 29, 2023

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/
1
!python run.py

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.