Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
class Plantation: def __init__(self, size: int): self.size = size self.plants = {} self.workers = [] @property def size(self): return self.__size @size.setter def size(self, value: int): if value < 0: raise ValueError("Size must be positive number!") self.__size = value def hire_worker(self, worker: str): if worker in self.workers: raise ValueError("Worker already hired!") self.workers.append(worker) return f"{worker} successfully hired." def __len__(self): count_of_plants = 0 for plants_planted in self.plants.values(): count_of_plants += len(plants_planted) return count_of_plants def planting(self, worker: str, plant: str): if worker not in self.workers: raise ValueError(f"Worker with name {worker} is not hired!") elif len(self) >= self.size: raise ValueError("The plantation is full!") if worker in self.plants.keys(): self.plants[worker].append(plant) return f"{worker} planted {plant}." self.plants[worker] = [plant] return f"{worker} planted it's first {plant}." def __str__(self): result = [f"Plantation size: {self.size}"] result.append(f'{", ".join(self.workers)}') for worker, plants in self.plants.items(): result.append(f"{worker} planted: {', '.join(plants)}") return '\n'.join(result) def __repr__(self): result = '' result += f'Size: {self.size}\n' result += f'Workers: {", ".join(self.workers)}' return result
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)