Python の基本構文 -- クラス、オブジェクト、カプセル化、継承

# プロセス指向: ビジネスをプロセスとステップに分割する
# 現象オブジェクト: ビジネスを個別のオブジェクトに分割する
#クラスの作成: 特定のクラスのオブジェクトが持つプロパティ (変数) とメソッド (関数) を定義します。
# 推奨事項: オブジェクトと区別するために、クラスの最初の文字を大文字にします。
#1種類
#class の各関数には固定パラメーターがあります: self
#self キーワード: クラス内の現在のオブジェクトを表します
クラス猫:
    def __init__(self,nick,color,age):#初期化メソッド、最初は int として書き込まれ、エラー: TypeError: Cat() は引数を取りません
        #猫の3つの属性(変数)
        self.nick=ニック
        self.color=色
        self.age=年齢
        self.pinzhong="Garfield"#クラスに属性値を直接付加できます
#オブジェクトの作成時に __init__ メソッドが呼び出されます
    def Eat(self,count):
        print(self.nick,"猫は魚を食べています、食べました", count, "魚")
#今後この cat クラスを使用するには、このクラスのオブジェクトを作成するだけです。オブジェクトには 3 つの属性と 1 つのメソッドが含まれます。
#2.オブジェクト
#形式:オブジェクト名=クラス名(属性値1、属性値2)
cat1=猫("小毛","白",2)
cat2=猫("小陽","黒",1)
#オブジェクトの作成後、次の 2 つのことを行うことができます。 1: オブジェクトの属性値を取得する
print(cat1.color)
#2. オブジェクトを介してメソッドを呼び出す
cat1.eat(3)#eat メソッドを呼び出すときに 3 を渡すことに加えて、self である cat1 自体も渡されます。
print(cat1)#Return: <__main__.Cat object at 0x0000025D794EFC40>, that means it is a Cat object. at に続くのは、メモリ内のオブジェクトのアドレス番号です。

#3、練習
クラスカード():
    def __init__(self,cnum,cpwd,cbalance):
        self.bankName="ICBC"
        self.cnum=cnum
        self.cpwd=cpwd
        self.__cbalance=cbalance#プライベート属性
    def __login(self):#プライベートメソッド
        cunm1=input("銀行カード番号を入力してください")
        cpwd1=input("銀行カード番号に対応するパスワードを入力してください")
        self.cnum==cunm1 および self.cpwd==cpwd1 の場合:
            print("ログイン成功")
            「わかりました」を返す
        それ以外:
            print("ログインに失敗しました")
            「いいえ」を返す
    def addmoney(self):
        a=self.__login()#self をオブジェクト名として使用して、クラス内で他のメソッドを呼び出すことができます
        a=="OK" の場合:
            cunkuan=int(input("入金額を入力してください"))
            allin=int(self.__cbalance)+cunkuan
            print("現在の残高は",allin)
Card1=カード("669988","123qwe","1000")
Card1.addmoney()
#print(card1.__cbalance)# はエラーを報告します。AttributeError: 'Card' オブジェクトには属性 '__cbalance' がありません。プライベート属性とメソッドはクラス内でのみ呼び出すことができます。
#オブジェクト指向アプリケーションに取り組む前に、ログインなどの操作を行うには、まずカード番号とパスワードをリストに格納し、リストを走査して判断する必要がありますが、後は​​どのカード番号がこのメソッドを呼び出しているかを判断するだけです。
#4. カプセル化
#Encapsulation、クラス内の属性またはメソッドをプライベート化します。プライベート化された属性およびメソッドはクラス内でのみ呼び出すことができます。つまり、メソッドまたは属性の前に「__」を追加します。
#5. クラスの継承
#親クラス: 複数のクラスのパブリック プロパティとメソッドの統一された定義
クラス動物():
    def __init__(自分,ニック,色,年齢):
        self.color=色
        self.age=年齢
        self.nick=ニック
    デフォルト食べる(自分):
        print(self.nick,"食べる")
    デフォルト実行(自分自身):
        print(self.nick,"running")
#サブクラスは親クラスからどのように継承するのでしょうか?
class Cat(Animal):#親クラスを括弧内に直接入力します
    合格
c1=Cat("Xiaomao","White","3 years old")#init メソッドの属性値には値を割り当てる必要があります
c1.eat()
# 親クラスは複数のサブクラスを持つことができ、サブクラスは複数の親クラスを持つことができます (多重継承、めったに使用されません)。オブジェクトはすべてのクラスの親クラスです










おすすめ

転載: blog.csdn.net/qq_40333984/article/details/125513493