python独学成才の道類の詳細な使い方
3397 ワード
文書ディレクトリ pythonクラス概要 クラス を作成インスタンスの作成と使用 クラス継承 インポートモジュールのクラス 静的方法 pythonクラスの概要
pythonはオブジェクト向けにプログラミングされた言語で、pythonのクラスとjavaのクラスは思想的に同じところがたくさんあります.例えばpythonクラスもclassで修飾されています.中にはメンバー属性、メンバーメソッド、構造関数もあります.親メソッドを継承したり書き換えたりすることもできますが、javeのクラスとは書き方が大きく異なります.
クラスを作成
ブロガーはここでクラスについて詳しく説明しません.デフォルトでこの文章を読む騒年にはオブジェクト向けの基本的な常識があります(javaのクラスについてよく知っています).ここでは、1.class Animal()javaでclassを作成するときにこれがありません()、pythonという()は継承するクラスを追加するために使用され、pythonは多くの継承を許可します.ブロガーはここで継承に使われていないので、空です.2. __init__この方法はクラスの構造方法で、書き方が特殊で、javaではクラスの構造方法とクラス名が同じで、pythonでは構造方法が__に統一されています.init__. 3.selfとは、javaのthisと同様に現在のインスタンス自体を指しますが、javaのthisはデフォルトで、pythonのselfは存在する必要があります(静的メソッドを除く).pythonは、クラス内の関数の最初のパラメータに自己オブジェクトインスタンスをデフォルトで渡します.4.self.name、self.ageはすべて属性で、javaの中で属性は単独で定義して、pythonの中で属性は構造方法の中でself.xxxを通じて定義します.5. self._sexこの属性はself.name,self.ageのような属性とは異なりself.xxxのような属性はプライベート属性であり,クラス内部でのみアクセスでき,オブジェクトインスタンスを介して直接アクセスできない.6.self.idこれはデフォルトのプロパティで、オブジェクトインスタンスを作成するときにidというパラメータを渡す必要はありません.
インスタンスの作成と使用
pythonでオブジェクトインスタンスを作成するにはnewキーを使用する必要はありません.直接作成すればいいです.
クラス継承
pythonではマルチ継承が実現されています.これはjavaとは異なり、javaでは単一継承しかできません.マルチ継承が使えるとはいえ、1つのクラスを継承すればできることは複数のクラスを継承しないほうがいい.プログラムが簡単であればあるほどいい.
上にはAnimalクラスから継承されたpigクラスがあります.1.子クラスの構築方法では、javaと同様に親クラスの構築方法を呼び出す必要があります.2.サブクラスは独自の属性を持つことができます.3.子クラスは親のメソッドを書き換えることができます.4.サブクラスには独自の方法がある.
モジュール内のクラスのインポート
先にimportインポートモジュールの関数(転送ゲート)について説明しましたが、importインポートモジュールのクラスでもいいです.たとえば、AnimalTest.pyファイルを新規作成すると、AnimalTest.pyファイルで次のようにインポートできます.1.モジュール全体をインポートするimport Animal
2.モジュールの一部クラスfrom Animal import Animal,Pigをインポート
3.モジュール内のすべてのクラスfrom Animal importを*でインポート*
4.asを使用してモジュール内のクラスに別名from Animal import Pig as pを作成
スタティツクメソッド
pythonでは静的メソッドもサポートされており、1つのメソッドに@staticmethod注釈を加えることで、このメソッドは静的メソッドとなり、静的メソッドにはselfパラメータが存在せず、静的メソッドはクラスによって直接呼び出されることができる.次のようになります.
pythonはオブジェクト向けにプログラミングされた言語で、pythonのクラスとjavaのクラスは思想的に同じところがたくさんあります.例えばpythonクラスもclassで修飾されています.中にはメンバー属性、メンバーメソッド、構造関数もあります.親メソッドを継承したり書き換えたりすることもできますが、javeのクラスとは書き方が大きく異なります.
クラスを作成
class Animal():
def __init__(self, name, age, sex):
self.name = name
self.age = age
#
self._sex = sex
#
self.id = hash(self.name + str(self.age))
def animalDesc(self):
print("this is " + self.name + ", its age is " + str(self.age))
def otherInfo(self):
pass
def getId(self):
return self.id
def getSex(self):
print(self._sex)
ブロガーはここでクラスについて詳しく説明しません.デフォルトでこの文章を読む騒年にはオブジェクト向けの基本的な常識があります(javaのクラスについてよく知っています).ここでは、1.class Animal()javaでclassを作成するときにこれがありません()、pythonという()は継承するクラスを追加するために使用され、pythonは多くの継承を許可します.ブロガーはここで継承に使われていないので、空です.2. __init__この方法はクラスの構造方法で、書き方が特殊で、javaではクラスの構造方法とクラス名が同じで、pythonでは構造方法が__に統一されています.init__. 3.selfとは、javaのthisと同様に現在のインスタンス自体を指しますが、javaのthisはデフォルトで、pythonのselfは存在する必要があります(静的メソッドを除く).pythonは、クラス内の関数の最初のパラメータに自己オブジェクトインスタンスをデフォルトで渡します.4.self.name、self.ageはすべて属性で、javaの中で属性は単独で定義して、pythonの中で属性は構造方法の中でself.xxxを通じて定義します.5. self._sexこの属性はself.name,self.ageのような属性とは異なりself.xxxのような属性はプライベート属性であり,クラス内部でのみアクセスでき,オブジェクトインスタンスを介して直接アクセスできない.6.self.idこれはデフォルトのプロパティで、オブジェクトインスタンスを作成するときにidというパラメータを渡す必要はありません.
インスタンスの作成と使用
pythonでオブジェクトインスタンスを作成するにはnewキーを使用する必要はありません.直接作成すればいいです.
animal = Animal('pig', 2, 'female')
animal.animalDesc()
print('animal is ' + animal.name + ', sex is ' + animal.getSex())
クラス継承
pythonではマルチ継承が実現されています.これはjavaとは異なり、javaでは単一継承しかできません.マルチ継承が使えるとはいえ、1つのクラスを継承すればできることは複数のクラスを継承しないほうがいい.プログラムが簡単であればあるほどいい.
class Pig(Animal):
def __init__(self, name, age, weight):
super().__init__(name, age, 'female')
#
self.weight = weight
#
def otherInfo(self):
print("the pig weights " + str(self.weight) + " kg.")
#
def pigEat(self):
print("I can eat more.")
上にはAnimalクラスから継承されたpigクラスがあります.1.子クラスの構築方法では、javaと同様に親クラスの構築方法を呼び出す必要があります.2.サブクラスは独自の属性を持つことができます.3.子クラスは親のメソッドを書き換えることができます.4.サブクラスには独自の方法がある.
モジュール内のクラスのインポート
先にimportインポートモジュールの関数(転送ゲート)について説明しましたが、importインポートモジュールのクラスでもいいです.たとえば、AnimalTest.pyファイルを新規作成すると、AnimalTest.pyファイルで次のようにインポートできます.1.モジュール全体をインポートするimport Animal
pig = Animal.Pig("Pig", 2, 200)
2.モジュールの一部クラスfrom Animal import Animal,Pigをインポート
pig = Pig("Pig", 2, 200)
3.モジュール内のすべてのクラスfrom Animal importを*でインポート*
pig = Pig("Pig", 2, 200)
4.asを使用してモジュール内のクラスに別名from Animal import Pig as pを作成
pig = p("Pig", 2, 200)
スタティツクメソッド
pythonでは静的メソッドもサポートされており、1つのメソッドに@staticmethod注釈を加えることで、このメソッドは静的メソッドとなり、静的メソッドにはselfパラメータが存在せず、静的メソッドはクラスによって直接呼び出されることができる.次のようになります.
@staticmethod
def classDesc():
print("this is a dog class")
# Dog classDesc , @staticmethod
# Dog
Dog.classDesc()