📌  相关文章
📜  python 检查类中是否存在属性 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:19:10.762000             🧑  作者: Mango

Python:检查类中是否存在属性 - TypeScript

在Python中,可以使用内置的hasattr()函数检查类中是否存在特定属性。这个函数接受两个参数:要检查的对象和属性的名称。如果该属性存在,则函数返回True,否则返回False

示例代码
class Person:
    name = "Tom"
    age = 25

has_name = hasattr(Person, 'name')
has_gender = hasattr(Person, 'gender')

print(has_name)     # True
print(has_gender)   # False

在上面的示例中,我们创建了一个名为Person的类,并定义了nameage属性。然后,我们使用hasattr()函数分别检查了namegender属性是否存在。

输出:

True
False
TypeScript中的等效操作

在TypeScript中,我们可以使用类成员的访问修饰符来控制属性的可见性和可访问性。默认情况下,属性是公共的,并且可以在类的任何地方访问。但是,如果您希望属性仅在类的内部可用,则可以将其声明为私有或受保护的属性。

私有属性只能在该类中使用,而受保护的属性只能在该类及其子类中使用。

以下是一个示例:

class Person {
    private name: string = "Tom";
    protected age: number = 25;
}

let person = new Person();
let hasName = Object.prototype.hasOwnProperty.call(person, 'name');
let hasAge = Object.prototype.hasOwnProperty.call(person, 'age');

console.log(hasName);   // false
console.log(hasAge);    // true

在这个示例中,我们创建了一个名为Person的类,并将name属性声明为私有属性,将age属性声明为受保护的属性。然后,我们使用Object.prototype.hasOwnProperty.call()函数来检查对象是否具有特定属性。

输出:

false
true

由于name属性是私有的,因此我们无法从类的外部直接访问它。因此,hasName变量的值为false

但是,我们可以从类的内部访问name属性,因此hasAge变量的值为true