クラスとインヘリタンス

2019年5月22日の記事の再掲

今、PythonのProgrammingを思い出している。これは2019/5/22付の記事の再掲である。これらはオブジェクト・オリエンティッドのプログラムの必須機能である。内容は同記事を参照してください。

class Pet(object):
    def __init__(self, name, size):
        self.name = name
        self.size = size
    def petcall(self):
        print("Cannot burk")
    def run(self):
        print("running")
class Dog(Pet):
    def petcall(self):
        print("Bow wow")
    def run(self):
        print("running")
class Cat(Pet):
    def swim(self):
        print("cannot swimming")
    def petcall(self):
        print("Mew")
    def run(self):
        print("running")
class Turtle(Pet):
    def __init__(self, name, size, color):
        self.name = name
        self.size = size
        self.color = color
    def run(self):
        print("Just walking")

gardenPet = Pet("Mary", 160)
gardenPet.petcall()
gardenPet.run()
houseDog = Dog("John", 40)
houseDog.petcall()
houseDog.run()
nekoTheCat = Cat("Neko", 35)
nekoTheCat.swim()
nekoTheCat.petcall()
nekoTheCat.run()
tinyTheTurtle = Turtle("tiny", 10, "green")
print(tinyTheTurtle.color)
tinyTheTurtle.petcall()
tinyTheTurtle.run()

上のCode画面の右上隅の左から2番目のアイコン(コピー)をクリックし、ご自分の何らかのエディタにペイストすればPython Programが編集可能となります。

文字が小さく見ずらい時はWindows拡大鏡をお使いください。Windows・キー + 「+」(プラス・キー)(Windows・キーはキーボード左下、左から3~4番目のキー。抜けるにはWindows・キー + 「ESCキー」を押します)
Enlighterのコードは窓の右上アイコンの「<>」を押すと明るい表示になります。

↑人気ブログランキングに参加しています。ポチっと1票を!

WP SyntaxHighlighterを使ったPython Programの例

WP SyntaxHighlighterを使ったPython Programの例

WordPressでSyntaxHighlightができるようになった。
Python ProgramのClassの例である。
これでテキストをコピペできるようになったが、その代わりHydrogenの結果などを表現できなくなった。長短相半ばするといったところか。今後は場合によって両者を使い分けることとする。

class Fish:
    def __init__(self, name, build="ほね", eyelids=False):
        self.name = name
        self.build = build
        self.eyelids = eyelids

    def swim(self):
        print("こちらの魚は泳ぎます")

    def swim_back(self):
        print("こちらの魚は後ろ向きにも泳ぎます")

class Medaka(Fish):
    pass

#mach1
mach = 1225
topspeed = 40000
print(topspeed / mach)

no0 = Fish("魚1号(親クラス)")
print(no0.name)
print('骨格:',no0.build)
print('まぶた:',no0.eyelids)
no0.swim()
no0.swim_back()

no1 = Medaka("魚2号(子クラス)")
print(no1.name)
print('骨格:',no1.build)
print('まぶた:',no1.eyelids)
no1.swim()
no1.swim_back()

# below do not execute
class Kingyo(Fish):
    def __init__(self, name, build="ほね", eyelids=False):
        self.name = '金魚ちゃん' + name + 'だよ'
        self.build = build + ' かな'
        self.eyelids = eyelids

以下がこれまでの当ブログでの表現

Python Classの例(Atom)の場合

(写真はY.O.氏から借用)
↑人気ブログランキングに参加しています。ポチっと1票を!

ジェネレータその1

ジェネレータ関数は、関数を動かしながら、yield文を使って何度も結果を返すことができます。

ジェネレータその1

ジェネレータ関数は、関数を動かしながら、yield文を使って何度も結果を返すことができます。
アイキャッチ画像は
①素数を返すジェネレータ関数
②割り切れる数を見つける
③見つかったのでループを中断
④素数が見つかったのでyieldで返す
⑤数値を増加

⑥素数を14個洗い出し
⑦14個まで素数を表示

↑人気ブログランキングに参加しています。ポチっと1票を!

イテレータ

イテレータ

・次の要素を取り出す処理
・要素が終わったかどうかを判別する処理
①リストをイテレータオブジェクトに変換
②「次の要素」を取り出す
④要素がなくなったら、「StopIteration」という例外が発生します。

↑人気ブログランキングに参加しています。ポチっと1票を!

ディクショナリ内包表記とset内包表記

ディクショナリ内包表記とset内包表記

アイキャッチ画像はディクショナリ内包表記(①)と
set内包表記(③)

ディクショナリ内包表記とset内包表記


↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその5

公約数のリストを持つタプルを作り出す。

Comprehensionその5

アイキャッチ画像はリスト内包表記を使って、1から20までの数と公約数のリストを持つタプルを次々と作っています。

↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその4

Comprehensionその4

リスト内包表記のシーケンスの右には、ifを使った条件式を置くことができる。
①②は24の約数をリストにして返す。

③④は等価で結果は⑤である。
④はリスト内包表記である。

↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその2

回文であるかどうか判定した結果「True」とでました。

Comprehensionその2

リスト内包表記と文字列を使って、文字列を反転する。
文字列に渡す引数としてマイナスを使うと、
最後から数えた要素を取得できることから
文字列を反転する。
「あいうえお」が反転しました。
回文であるかどうか判定した結果「True」とでました。
②⑤はs == “”.join(reversed(s))と等価(rs == ・・・)

↑人気ブログランキングに参加しています。ポチっと1票を!