-
在外部訪問私有屬性將會拋出異常,提示沒有這個屬性。
雖然私有屬性無法從外部訪問,但是,從類的內(nèi)部是可以訪問的。私有屬性是為了保護類或?qū)嵗龑傩圆槐煌獠课廴径O(shè)計的。查看全部 -
在類屬性和實例屬性同時存在的情況下,實例屬性的優(yōu)先級是要高于類屬性的,在操作實例的時候,優(yōu)先是操作實例的屬性,另外,當(dāng)實例沒有和類同名的時候,通過實例對象,不可以修改類屬性,通過實例方法修改類屬性,只是給實例綁定了一個對應(yīng)的實例屬性
查看全部 -
類屬性也是可以動態(tài)添加和修改的,需要注意的是,因為類屬性只有一份,所以改變了,所有實例可以訪問到的類屬性都會變更
def與引用函數(shù)差不多有什么都需要執(zhí)行的操作可以直接在def __init__(self,name,age):里寫
查看全部 -
實例屬性每個實例各自擁有,互相獨立
類屬性有且只有一份
查看全部 -
def后面必須要有空格然后是兩個下劃線,然后是init然后又是兩個下劃線
查看全部 -
class Animal(object):
? ? def __init__(self,name,age):
? ? ? ? self.name=name
? ? ? ? self.age=age
? ?#pass
dog=Animal('bob',5)
cat=Animal('ketty',8)
print(dog.name)
print(cat.name)
對
class Animal(object):
? ? def __init__(self,name,age):
? ? ? ? self.name=name
? ? ? ? self.age=age
? ?#pass
? ? dog=Animal('bob',5)
? ? cat=Animal('ketty',8)
print(dog.name)
print(cat.name)
不對
查看全部 -
# Enter a code
# coding:utf-8
class Person(object):
? ? def __init__(self,name,gender):
? ? ? ? self.name = name
? ? ? ? self.gender = gender
? ??
# 定義student類
class Student(Person):
? ? def __init__(self,name,gender,score):
? ? ? ? super(Student,self).__init__(name,gender)
? ? ? ? self.score = score
? ? ? ??
# 定義teacher類
class Teacher(Person):
? ? def __init__(self,name,gender,subject):
? ? ? ? super(Teacher,self).__init__(name,gender)
? ? ? ? self.subject = subject
? ? ? ??
? ? ? ??
teacher = Teacher('xiaoming','female',34)
print(teacher.name)
查看全部 -
# Enter a code
class animal(object):
? ? __count = 0
? ??
? ? def __init__(self,name,age):
? ? ? ? self.name = name
? ? ? ? self.age = age
? ? ? ??
? ? # set_count函數(shù)相當(dāng)于引用了類的引用
? ? @classmethod
? ? def set_count(cls,location):
? ? ? ? cls.__count = count
? ??
? ? # 這一步是獲得類的私有屬性值
? ? @classmethod
? ? def get_count(cls):
? ? ? ? return cls.__count
dog = animal('xiaoming',12)
animal.set_count = 14
print(animal.get_count())
查看全部 -
為了操作實例對象的私有屬性,我們定義了實例方法;同樣的,如果需要需要操作類的私有屬性,則應(yīng)該定義類的方法。
默認(rèn)的,在class中定義的全部是實例方法,實例方法第一個參數(shù) self 是實例本身。
要在class中定義類方法,需要這么寫:class?Animal(object): ????__localtion?=?'Asia' ????def?__init__(self,?name,?age): ????????self.name?=?name ????????self.age?=?age ????@classmethod ????def?set_localtion(cls,?localtion): ????????cls.__localtion?=?localtion ????@classmethod ????def?get_localtion(cls): ????????return?cls.__localtion print(Animal.get_localtion())?#?==>?Asia Animal.set_localtion('Afica') print(Animal.get_localtion())?#?==>?Africa
和實例方法不同的是,這里有兩點需要特別注意:
類方法需要使用@classmethod來標(biāo)記為類方法,否則定義的還是實例方法
類方法的第一個參數(shù)將傳入類本身,通常將參數(shù)名命名為 cls,上面的 cls.__localtion 實際上相當(dāng)于Animal.__localtion。
? ??? ?因為是在類上調(diào)用,而非實例上調(diào)用,因此類方法無法獲得任何實例變量,只能獲得類的引用。
查看全部 -
f?=?open(r'C:\Users\Administrator\Desktop\1.py',"r") print(f.read(3)) print(f.readlines(3)) print(f.readline()) f.close()
#三種方法都會導(dǎo)致游標(biāo)移動
查看全部 -
eval()函數(shù)可以把字符串轉(zhuǎn)換為等值的結(jié)果,比如eval('1+1'),得到結(jié)果為2。請使用eval實現(xiàn)一個簡單的計算器,可以輸入表達(dá)式并打印計算結(jié)果。
#eval()函數(shù)
描述
eval() 函數(shù)用來執(zhí)行一個字符串表達(dá)式,并返回表達(dá)式的值。
語法
以下是 eval() 方法的語法:
eval(expression[,?globals[,?locals]])
參數(shù)
expression -- 表達(dá)式。
globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。
返回值
返回表達(dá)式計算結(jié)果。
實例
以下展示了使用 eval() 方法的實例:
>>>x = 7>>> eval( '3 * x' )21>>> eval('pow(2,2)')4>>> eval('2 + 2')4>>> n=81>>> eval("n + 4")85
查看全部 -
https://blog.csdn.net/weixin_33841503/article/details/93488771
查看全部 -
p?=?Person('Tim',?'Male') s?=?Student('Bob',?'Male',?88) t?=?Teacher('Alice',?'Female',?'English')
當(dāng)我們拿到變量 p、s、t 時,可以使用 isinstance 判斷類型:
>>>?isinstance(p,?Person) True?#?p是Person類型 >>>?isinstance(p,?Student) False?#?p不是Student類型 >>>?isinstance(p,?Teacher) False?#?p不是Teacher類型
這說明在繼承鏈上,一個父類的實例不能是子類類型,因為子類比父類多了一些屬性和方法。
我們再考察 s:>>>?isinstance(s,?Person) True?#?s是Person類型 >>>?isinstance(s,?Student) True?#?s是Student類型 >>>?isinstance(s,?Teacher) False?#?s不是Teacher類型
#用isinstance判斷數(shù)據(jù)類型,
查看全部 -
super().__init__(name,gender)#注意super()括號中的參數(shù)設(shè)定
- uper(Teacher,self).__init__(name,gender)
查看全部 - uper(Teacher,self).__init__(name,gender)
-
義了類之后,就可以對類進(jìn)行實例化了,實例化是指,把抽象的類,賦予實物的過程。比如,定義好Person這個類后,就可以實例化多個Person出來了。
創(chuàng)建實例使用類名+(),類似函數(shù)調(diào)用的形式創(chuàng)建查看全部
舉報