Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / app.py
Last active February 13, 2026 16:11
приклад на властивості в пайтон
from datetime import date
class Person:
# можна заборонити додавання нових атрибутів на льоту
# __slots__ = ("_name", "_birthday", "_knows_python") # дозволені атрибути
def __init__(self):
self._name = "Микола"
self._birthday = date(1970, 1, 1)
self._knows_python = False
@sunmeat
sunmeat / app.py
Created February 13, 2026 15:06
як виглядає типовий клас в пайтон
from __future__ import annotations
from dataclasses import dataclass, field
from datetime import date
from enum import Enum
from random import randint
from typing import List
class EyesColor(Enum):
YELLOW = "Yellow"
BLACK = "Black"
@sunmeat
sunmeat / app.py
Created February 13, 2026 14:35
загальний приклад класу в пайтон
class AlwaysNounsNotVerbs:
"""сlass documentation comment
опис класу: що він робить, для чого призначений
"""
# 1. класові (статичні) змінні - належать класу, спільні для всіх екземплярів
class_counter = 0
DEFAULT_TIMEOUT = 30
def __init__(self, name: str, value: int = 0):
@sunmeat
sunmeat / app.py
Created February 13, 2026 13:07
приклад AOP в пайтон
import time
# декоратор: логування в консоль (через print)
def log_to_console(func):
def wrapper(*args, **kwargs):
print(f"[log console] виклик {func.__name__} | args: {args} | kwargs: {kwargs}")
try:
result = func(*args, **kwargs)
print(f"[log console] {func.__name__} > {result}")
return result
@sunmeat
sunmeat / app.py
Created February 13, 2026 11:26
приклад на замикання в пайтон
# фабрика логерів з ізольованим станом для відстеження статусів
def create_logger(level='INFO', prefix=''):
# приватний журнал повідомлень для цього логера
log_messages = []
def log(message):
# додаємо повідомлення в журнал і одразу виводимо
nonlocal log_messages
formatted = f"[{level}] {prefix}{message}"
log_messages.append(formatted)
@sunmeat
sunmeat / app.py
Created February 13, 2026 10:42
приклад на множини в пайтон
print("1. Множина імператорів з найяскравішими характерами")
emperors = {
"Гай Юлій Цезар Октавіан Август",
"Тиберій Клавдій Нерон",
"Гай Юлій Цезар Август Германік (Калігула)",
"Нерон Клавдій Цезар Август Германік",
"Марк Аврелій Коммод Антонін",
"Марк Аврелій Север Антонін Бассіан (Каракалла)",
"Гай Аврелій Антонін Геліогабал",
#include <iostream>
#include <string>
#include <windows.h>
#pragma comment(lib, "urlmon.lib")
using namespace std;
int main() {
string city[10] = {"Kyiv","Lviv","Odesa","Kharkiv","Dnipro","Zaporizhzhia","Vinnytsia","Poltava","Chernihiv","Ivano-Frankivsk"};
@Arsenii123
Arsenii123 / `1.sql
Created February 10, 2026 14:24
Viwes
USE [master]
GO
/****** Object: Database [Shop2] Script Date: 07/02/2026 20:46:16 ******/
CREATE DATABASE [Shop2]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Shop2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\Shop2.mdf' , SIZE = 20480KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'Shop2_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\Shop2_log.ldf' , SIZE = 20480KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER = OFF
@sunmeat
sunmeat / example.sql
Created February 10, 2026 14:21
змінні, умови, цикли, курсори, процедури в MySQL
/* =========================================================
DEMO: змінні, умови, цикли, курсори, процедури (MySQL)
========================================================= */
/* ---------- очистка ---------- */
DROP PROCEDURE IF EXISTS demo_all;
DROP PROCEDURE IF EXISTS rectangle;
DROP TABLE IF EXISTS Product;
/* ---------- таблиця ---------- */
@sunmeat
sunmeat / app.py
Created February 10, 2026 13:37
приклад на лямбди в пайтон
lambda x, y: x + y # з точки зору пайтон, це просто звичайний вираз, як 1 + 2 або "hello", який НЕ вимагає обов’язкового «прив’язування» до імені чи контексту, як у більшості C-подібних мов
print((lambda x: x ** 2)(5)) # 25 (викликається одразу після визначення)
###############################################################
numbers = [1, 2, 3, 4, 5, 6]
squared = list(map(lambda x: x ** 2, numbers)) # квадрати всіх чисел у списку
evens = list(filter(lambda x: x % 2 == 0, numbers)) # лише парні числа зі списку
print(squared) # [1, 4, 9, 16, 25, 36]
print(evens) # [2, 4, 6]