1. 程式人生 > 實用技巧 >python3(一) 類與函式的定義、使用

python3(一) 類與函式的定義、使用

秋招結束,期間一直採用java刷題,python的熟練程度下降,因此決定重新撿回python。

一、類的定義

參考了:https://blog.csdn.net/weixin_44831484/article/details/90339650

 1 class Person:
 2     def __init__(self, xName, xAge):
 3         self.name = xName
 4         self.age = xAge
 5     #能否過載
 6     def printPeson1(self,tmp):
 7         print("My name is {}, My age is {} and sex is {}
".format(self.name,self.age,tmp)) 8 def printPeson2(self): 9 print("My name is {}, My age is {}".format(self.name,self.age)) 10 11 #例項化類 12 person = Person('lily',22) 13 #呼叫類成員函式,有參,無參 14 person.printPeson1('felman') 15 person.printPeson2() 16

總結:

1.class小寫,類名Person首字母大寫

2.無花括號{},用冒號:

3.例項化時無new,直接類名(),Person()。括號中的引數與初始化函式__init__()中傳入的一致

二、初始化函式__init__()與self

參考了 https://www.cnblogs.com/ant-colonies/p/6718388.html

__init__(): 為類的初始化函式,在java中類名(),Person(){}為初始化函式。在例項化物件時,會呼叫初始化函式,傳入引數。所以是例項化時,傳入的引數與初始化函式的引數一致。

public class Person{
    String name;
    int age;
    //初始化函式
    Person(String xName, int
xAge){ // name = xName; // age = xAge; // 也可以寫成: this.name = xName; this.age = xAge; } }

python類中的self與Java類中的this是類似的,代表該類當前物件。

在類的程式碼(函式)中,需要訪問當前的例項中的變數和函式的,即,訪問Instance中的:

  • 對應的變數(屬性,property):Instance.ProperyNam,去讀取之前的值和寫入新的值

  • 呼叫對應函式(function):Instance.function(),即執行對應的動作

-> 而需要訪問例項的變數和呼叫例項的函式,當然需要對應的例項Instance物件本身

-> 而Python中就規定好了,成員函式的第一個引數,就必須是例項物件本身,並且建議,約定俗成,把其名字寫為self

-> 所以,我們需要self(需要用到self)

而如果沒有用到self,即程式碼中,去掉self後,那種寫法所使用到的變數,實際上不是你所希望的,不是真正的例項中的變數和函式,而是的訪問到了其他部分的變數和函數了。甚至會由於沒有合適的初始化例項變數,而導致後續無法訪問的錯誤。