Technology sharing

Explore [Python Object-Oriented] Programming: Explicatio programmandi paradigmata in nova aetate

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Tabula contentorum

1. Object-orientatur programming notiones (OOP)

1.1 Quae sunt genera et obiecta?

1.2 Classis definitio

1,3 Relatio inter classes et objecta

1.4 Xiao Li intellectus

2. Abstractio

2.1 conceptus abstracti

2.2 Abstracta genera et modos

2.3 Xiao Li intellectus

3. Classes et instantiae

3.1 Classis definitio et instantiation

3.2 Classis attributa et modos

3.3 Xiao Li intellectus

4. Encapsulation / interface

4.1 conceptus encapsulation

4.2 conceptus interface

4.3 Xiao Li intellectus

5. hereditas

5.1 De notione hereditatis

5.2 Methodus rewriting

5.3 Xiao Li intellectus

6. Polymorphismus

6.1 Notio polymorphismi

6.2 Polymorphism Implement

6.3 Xiao Li intellectus

7. Introspectio / Meditatio

7.1 notio introspectionis

7.2 Using introspectio ad res dynamicas

7.3 Xiao Li intellectus

8. Statica methodi et genus modi

8.1 modos

8.2 Modi Classis

Summatim


 

Columna: pythonis studio notas

Volumen prior: Python modularisation et sarcina procuratio

1. Object-orientatur programming notiones (OOP)

Object-orientatur programming (OOP) Paradigma programmatio est a programmatibus ordinandis in collectiones rerum. Res non solum notitias, sed etiam methodos ad illam datam abusionem continent. Core notiones OOP includunt classes, obiecta, proprietates et modos.

1.1 Quae sunt genera et obiecta?

  • Classis Exemplum est vel blueprint ad creare obiecti. Classes proprietates et mores obiectorum definiunt.
  • Object Instantia in genere est. Creare obiectum est creare instantia specifica secundum genus.

exemplum:

  1. class Dog:
  2. # 类的初始化方法
  3. def __init__(self, name, age):
  4. self.name = name # 属性
  5. self.age = age # 属性
  6. # 方法
  7. def bark(self):
  8. return f"{self.name} says Woof!"
  9. # 创建对象
  10. my_dog = Dog("Rex", 5)
  11. print(my_dog.bark())

1.2 Classis definitio

Apud Pythonem classes pass class Keyword definitione. Munera in genere dicuntur modi et variabiles proprietates.Genus modi plerumque incipereself Ut primus modulus, ipsam instantiam repraesentat.

exemplum:

  1. class Cat:
  2. def __init__(self, name):
  3. self.name = name
  4. def meow(self):
  5. return f"{self.name} says Meow!"
  6. # 创建对象
  7. my_cat = Cat("Whiskers")
  8. print(my_cat.meow())

1,3 Relatio inter classes et objecta

Genus est exemplum rei et structuram et mores obiecti definit. Objecta sunt instantiae generum, et unumquodque objectum sui juris proprietates ac modos habet.

  1. class Person:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def greet(self):
  6. return f"Hello, my name is {self.name} and I am {self.age} years old."
  7. # 创建多个对象
  8. person1 = Person("Alice", 30)
  9. person2 = Person("Bob", 25)
  10. print(person1.greet())
  11. print(person2.greet())

1.4 Xiao Li intellectus

Genus crustulum simile est, crustulum figuram et magnitudinem definit. Objecta sunt sicut crustula concreta ex forma facta. Quisque crustulum diversos sapores habere potest (proprietates), sed figura et magnitudo (structura et mores) idem sunt.

2. Abstractio

abstractum Indicat simplicitatem problematum realium mundi implicatorum capiendo praecipuas lineas et singula neglecta. In programmando, abstractio adiuvat ut codicem brevius et conservabile efficiamus.

2.1 conceptus abstracti

Abstractio est de extrahendo principales notas rei, dum singula ignobilia ignorans. Per abstractionem intendere possumus nucleum functionis alicuius rei quin distrahatur a secundariis notis.

exemplum:

  1. class Animal:
  2. def __init__(self, name):
  3. self.name = name
  4. def make_sound(self):
  5. pass # 抽象方法,不具体实现
  6. class Dog(Animal):
  7. def make_sound(self):
  8. return "Woof!"
  9. class Cat(Animal):
  10. def make_sound(self):
  11. return "Meow!"
  12. # 创建对象
  13. dog = Dog("Rex")
  14. cat = Cat("Whiskers")
  15. print(dog.make_sound())
  16. print(cat.make_sound())

2.2 Abstracta genera et modos

In Pythone, abstractionem consequi possumus per classes abstractas et modos abstractos definiendo. Classes abstractae instantiari non possunt, modo hereditari. Modi abstracti definiuntur in genere abstracto, sed perficiuntur in subclassibus.

exemplum:

  1. from abc import ABC, abstractmethod
  2. class Vehicle(ABC):
  3. @abstractmethod
  4. def start_engine(self):
  5. pass
  6. class Car(Vehicle):
  7. def start_engine(self):
  8. return "Car engine started"
  9. class Motorcycle(Vehicle):
  10. def start_engine(self):
  11. return "Motorcycle engine started"
  12. # 创建对象
  13. car = Car()
  14. motorcycle = Motorcycle()
  15. print(car.start_engine())
  16. print(motorcycle.start_engine())

2.3 Xiao Li intellectus

Abstractio est quasi pictura complexa reducens ad figuras geometras. Exempli gratia, cattus specificus multas notas habet (tunica color, magnitudo, aetas, etc.), sed tantum intendunt in proprietatem meowing.

3. Classes et instantiae

Classes et instantiae Fundamentum est OOP. Classes sunt exempla et instantiae concretae. Instantiae quae ex genere sunt creatae, habent proprietates et rationes ab genere definitas.

3.1 Classis definitio et instantiation

Classem definiens et instantiam creans sunt praecipuae operationes OOP. Classes definiunt proprietates et methodos, et instantiae sunt concreta objecta in genere.

exemplum:

  1. class Student:
  2. def __init__(self, name, grade):
  3. self.name = name
  4. self.grade = grade
  5. def introduce(self):
  6. return f"Hi, I am {self.name} and I am in grade {self.grade}."
  7. # 创建实例
  8. student1 = Student("Alice", 10)
  9. student2 = Student("Bob", 12)
  10. print(student1.introduce())
  11. print(student2.introduce())

3.2 Classis attributa et modos

Attributa generis sunt status obiecti, mores autem obiecti.Classis attributa pass__init__ Methodus initializationis, modus in genere definitur.

exemplum:

  1. class Book:
  2. def __init__(self, title, author):
  3. self.title = title
  4. self.author = author
  5. def get_info(self):
  6. return f"'{self.title}' by {self.author}"
  7. # 创建实例
  8. book = Book("1984", "George Orwell")
  9. print(book.get_info())

3.3 Xiao Li intellectus

Classes et instantiae sunt sicut tractus domus et domus actualis. Delineationes (classes) structuram et functionem domus definiunt, dum ipsa domus (exempli gratia) est obiectum concretum secundum delineatas aedificatum.

4. Encapsulation / interface

encapsulation Obiecti status (proprietates) et mores (modos) intra genus et mutuas cum extra mundum per interfaces occultat (modos). Encapsulation melioris codicis securitatem et conservabilitatem.

4.1 conceptus encapsulation

Encapsulatio est una e notionibus nucleorum OOP. Notitias obiecti protegit, celans internum statum rei et solum necessarias interfaces exponens. Hoc modo, Codex externus directe accedere vel mutare statum internum rei non potest, et nonnisi notitias manipulare per modos ab obiecto praescriptos.

exemplum:

  1. class Account:
  2. def __init__(self, owner, balance=0):
  3. self.owner = owner
  4. self.__balance = balance # 私有属性
  5. def deposit(self, amount):
  6. if amount > 0:
  7. self.__balance += amount
  8. else:
  9. raise ValueError("Deposit amount must be positive")
  10. def withdraw(self, amount):
  11. if 0 < amount <= self.__balance:
  12. self.__balance -= amount
  13. else:
  14. raise ValueError("Insufficient funds or invalid amount")
  15. def get_balance(self):
  16. return self.__balance
  17. # 创建实例
  18. account = Account("John")
  19. account.deposit(100)
  20. print(account.get_balance())

4.2 conceptus interface

Interface est solum obiectum mutuae cum extra. Per interfaces, Codex externus modos obiecti vocare potest, sed non potest directe accedere ad statum internum obiecti.

exemplum:

  1. class Car:
  2. def __init__(self, model):
  3. self.model = model
  4. self.__engine_started = False
  5. def start_engine(self):
  6. if not self.__engine_started:
  7. self.__engine_started = True
  8. return "Engine started"
  9. else:
  10. return "Engine is already running"
  11. def stop_engine(self):
  12. if self.__engine_started:
  13. self.__engine_started = False
  14. return "Engine stopped"
  15. else:
  16. return "Engine is not running"
  17. # 创建实例
  18. car = Car("Toyota")
  19. print(car.start_engine())
  20. print(car.stop_engine())

4.3 Xiao Li intellectus

Fasciculus est sicut tabulae telephonicae mobiles. Ambitus et componentes (status obiecti) intra telephonum mobile in armamentis includuntur. Usor solum cum telephono mobili per globulis et velum (interface) seiungi potest, sed partes internas directe contingere non possunt.

5. hereditas

hereditas Est alia nucleus notio OOP, quae novum genus in exsistente genere creare nobis concedit.

5.1 De notione hereditatis

Hereditas est cum unum genus (genus) proprietates et rationes ex alio genere obtinet (parentis genus). Per hereditatem, subclasses codicem parentis ordinis reudere possunt, novas proprietates ac modos addere vel modos ordinis parentis anteire.

exemplum:

  1. class Animal:
  2. def __init__(self, name):
  3. self.name = name
  4. def speak(self):
  5. pass
  6. class Dog(Animal):
  7. def speak(self):
  8. return "Woof!"
  9. class Cat(Animal):
  10. def speak(self):
  11. return "Meow!"
  12. # 创建实例
  13. dog = Dog("Rex")
  14. cat = Cat("Whiskers")
  15. print(dog.speak())
  16. print(cat.speak())

5.2 Methodus rewriting

Genus genus modum parentis ordinis vincit, hoc est, methodum definire eodem nomine cum genere parentis in genere ad diversas functiones consequendas.

exemplum:

  1. class Shape:
  2. def area(self):
  3. return 0
  4. class Rectangle(Shape):
  5. def __init__(self, width, height):
  6. self.width = width
  7. self.height = height
  8. def area(self):
  9. return self.width * self.height
  10. class Circle(Shape):
  11. def __init__(self, radius):
  12. self.radius = radius
  13. def area(self):
  14. return 3.14 * (self.radius ** 2)
  15. # 创建实例
  16. rectangle = Rectangle(3, 4)
  17. circle = Circle(5)
  18. print(rectangle.area())
  19. print(circle.area())

5.3 Xiao Li intellectus

Hereditas est quasi legatis liberis parentibus data. Parentes (genus parentis) suas proprietates (proprietates et methodos) filiis suis (genus) transmittunt, et filii non solum his proprietatibus uti possunt, sed etiam sua industria ditiores fiunt (novas proprietates et modos addit).

6. Polymorphismus

Polymorphismus Et sic idem modus habet diversas manifestationes in diversis. Polymorphismus nos permittit vocare modos diversorum objectorum per idem medium ad diversas functiones consequendas.

6.1 Notio polymorphismi

Polymorphismus unus est e notis magni momenti OOP. Indicat genus obiecti per parentem genus indiciorum, eandem methodum varias exsecutiones habere sinit. Polymorphismus codicem auget flexibilitas et scalabilitas.

exemplum:

  1. class Animal:
  2. def speak(self):
  3. pass
  4. class Dog(Animal):
  5. def speak(self):
  6. return "Woof!"
  7. class Cat(Animal):
  8. def speak(self):
  9. return "Meow!"
  10. def animal_sound(animal):
  11. print(animal.speak())
  12. # 创建实例
  13. dog = Dog()
  14. cat = Cat()
  15. animal_sound(dog)
  16. animal_sound(cat)

 

6.2 Polymorphism Implement

In Pythone, polymorphismus plerumque per methodum summopere ac parentis genus indiciorum impletur. Ostendens genus obiectum per relationem ordinis parentis, genus genus modum vocare potes.

exemplum:

  1. class Shape:
  2. def draw(self):
  3. pass
  4. class Rectangle(Shape):
  5. def draw(self):
  6. return "Drawing a rectangle"
  7. class Circle(Shape):
  8. def draw(self):
  9. return "Drawing a circle"
  10. def draw_shape(shape):
  11. print(shape.draw())
  12. # 创建实例
  13. rectangle = Rectangle()
  14. circle = Circle()
  15. draw_shape(rectangle)
  16. draw_shape(circle)

 

6.3 Xiao Li intellectus

Polymorphismus est quasi imperium universale remotum. Sive sit moderatio TV, aer Conditioner vel stereo, dummodo hae machinae interfaces correspondentes habent (ratio), remota potestate (relatio generis parentis) diversis functionibus per easdem globulis efficere potest (ratio vocat).

7. Introspectio / Meditatio

introspectio Significat quod obiectum suum potest cognoscere notitias suas in runtime. Python in functionibus ad introspiciendum aliquid aedificatum praebet, uttype()id()hasattr() manere.

7.1 notio introspectionis

Introspectio significat rem suam consequi posse notitias runtime, ut proprietates, modos, etc. Introspectio facit programmata Pythonis valde dynamica et flexibilia.

exemplum:

  1. class Person:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. person = Person("Alice", 30)
  6. # 使用内置函数进行自省
  7. print(type(person))
  8. print(hasattr(person, "name"))
  9. print(getattr(person, "name"))
  10. setattr(person, "name", "Bob")
  11. print(person.name)
  12. delattr(person, "name")

7.2 Using introspectio ad res dynamicas

Per introspectionem possumus dynamice manipulare proprietates et modos obiectorum in tempore currenti, progressionem magis flexibilem et dynamicam faciens.

exemplum:

  1. class Car:
  2. def __init__(self, model):
  3. self.model = model
  4. self.speed = 0
  5. def accelerate(self):
  6. self.speed += 5
  7. return self.speed
  8. car = Car("Toyota")
  9. # 动态操作对象
  10. if hasattr(car, "accelerate"):
  11. method = getattr(car, "accelerate")
  12. print(method())
  13. print(method())
  14. # 动态设置属性
  15. setattr(car, "color", "red")
  16. print(car.color)

7.3 Xiao Li intellectus

Examen sui simile est per speculum inspicere. Per speculum (mechanisma introspectio), homines videre possunt quid simile (proprietates et rationes rerum) faciant ac accommodationes ut opus (manipulation objectorum dynamicae).

8. Statica methodi et genus modi

static methodo etgenus modus sunt modi cum genere, non instantia.static modum usus@staticmethod Decorator, genus usus@classmethod EXORNATO.

8.1 modos

Methodus stabilis est methodus ordinis, sed non tenetur in omni genere exempli. Modi statis instantiae alicuius generis accedere non possunt, neque statum classis mutare possunt. Solent adhiberi ad aliquam operationem quae nihil pertinet ad genus, sed logice pertinet ad genus functionis.

exemplum:

  1. class Math:
  2. @staticmethod
  3. def add(a, b):
  4. return a + b
  5. print(Math.add(5, 3))

 

8.2 Modi Classis

Modi sunt methodi in genere, qui tenentur ad instanciam quam ad instanciam.Primum argumentum ad rationem generis est ipsum genus, quod vulgo nominari soletcls . Classis methodi accessere possunt ad proprietates ordinis et methodi aliorum classium.

exemplum:

  1. class Math:
  2. factor = 2
  3. @classmethod
  4. def multiply(cls, value):
  5. return cls.factor * value
  6. print(Math.multiply(5))

Summatim

Omnes rationes objecti programmationis in Pythone ordinantur, inter notiones fundamentales programmationis obiecti ordinatae, abstractiones, classes et instantiae, encapsulationis, hereditatis, polymorphismi, introspectionis, et methodi statice et ordinis.

Opto hoc singulare blog iuvare potest te penitus percipere programmatum in Pythone obiectum-orientatum et hanc cognitionem in actualibus inceptis applicare. Si quas quaestiones habes vel auxilium ulteriore egeas, placet mihi liberum contactus!