Pythonに挑戦(10)

Pythonに挑戦(10)

Pythonに挑戦(9)からの続きです。

(11) self
オブジェクト指向言語Pythonでは、クラスを定義し、そのクラスの性質を有するインスタンスを生成してプログラミングを行います。そのとき、クラス、インスタンスの自分自身を示すのに、self文を使います。
クラスに属するメソッドでは、第
1引数は必ずselfにします。__init__()でインスタンスを生成するとき、第2引数でインスタンス名を指定して、このインスタンスにnameという要素を作るのであれば、__init__()は次のようになります。

class myclass:
def __init__(self, name)
self.name = name
def dispname(self)
print(“名前は:“, self.name)
m1 = myclass(“abcd”)
m1.dispname()
とすると、画面には、名前はabcdと表示します。

(12) @property
住所録を作るようなとき、個人ごとのクラスPersonに、名前、住所、郵便番号、宛先文字列を格納する、name, addrpostcode_postという要素を作り、敬称を指定するメソッドposta(),宛先_postという要素を得るメソッドpostb()を用意したとします。インスタンスを作った後、郵便物の宛先を得るためには、以下のように、メソッドposta()で敬称を指定し、メソッドpostb()を呼び出すのが普通です。

class Person:
def __init__(self, name, addr, postcode):
self.name = name
self.addr = addr
self.postcode = postcode
self._post = “”
def posta(self, aa):
self._post = chr(12306) + self.postcode + chr(13) + chr(10) + self.addr + chr(13) + chr(10) + “  ” + self.name + aa
def postb(self):
return self._post
p1 = Person(“井上三郎“, “東京都文京区山内町3-10-12″, “119-3679”)
p1.posta(“
“)
postaddr1 = p1.postb()
print(postaddr1)
とすると、画面には、

119-3679
東京都文京区山内町3-10-12
  井上三郎様
と表示されます。ですが、クラス定義の中で、def post()の前に、@propertyを付けると、p1.postとするだけで、メソッドpost()の結果をあたかもクラスの要素postのように取り出すことができます。また、_postに敬称を付けるメソッドpost()の前に@post.setterを付けると、p1.postに代入するような記述をすると、代入するデータをメソッドpost(self, aa)の第2引数aaに入れてメソッドを呼び出し、以下のようにして、先と同じ結果が得られます。

class Person:
def __init__(self, name, addr, postcode):
self.name = name
self.addr = addr
self.postcode = postcode
self._post = “”
@property
def post(self):
return self._post
@post.setter
def post(self, aa)
self._post = chr(12306) + self.postcode + chr(13) + chr(10) + self.addr + chr(13) + chr(10) + “  ” + self.name + aa
p1 = Person(“井上三郎“, “東京都文京区山内町3-10-12″, “119-3679”)
p1.post = “

print(p1.post)
とすると、画面には、

119-3679
東京都文京区山内町3-10-12
  井上三郎様

と表示されます。

(13) import, as, from
モジュールpqrを使いたい場合に、

import pqr
とします。これで、モジュールpqr内で定義されている関数st(),クラスuvが、pqr.st()pqr.uvとして使用可能になります。モジュールpqr内のstだけを使いたい場合は、

from pqr import st
とします。モジュールpqr内のクラス名がabcdefghijklmと長くて使いにくい場合は、

from pqr import abcdefghijklm as ab
とすると、abcdefghijklm.dataとする代わりに、ab.dataとして利用することができます。
Python言語には、標準で便利なモジュールが色々用意されています。モジュールについては、Pythonに挑戦(7)を参照してください。

Pythonに挑戦(10)その(2)に続く


  ブログTOP  TOPページに戻る


各問題の著作権は
出題大学に属します。

©2005-2024
(有)りるらる
苦学楽学塾 随時入会受付中!
理系大学受験ネット塾苦学楽学塾
(ご案内はこちら)ご入会は、
まず、こちらまでメール
お送りください。


【広告】 ここから広告です。ご覧の皆さまのご支援ご理解を賜りたく、よろしくお願いいたします。
【広告】 広告はここまでです。
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする